PIL.Image convert to numpy array

当使用PIL.Image读取图像时,如果直接使用numpy.array()转换会出现错误:

lst = list()
for file_name in os.listdir(dir_image):
    image = PIL.Image.open(file_name)
    lst.append(image)
arr = numpy.array(lst)

此时,上述最后一行在执行时会出现错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'Image'

解决办法如下:

lst = list()
for file_name in os.listdir(dir_image):
    image = PIL.Image.open(file_name)
    lst.append(np.array(image))
arr = numpy.array(lst)

即,在list中的元素都已转化为numpy.array,而非直接的Image对象。

    原文作者:perphyyoung
    原文地址: https://segmentfault.com/a/1190000012289290
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞