打开单张图片

时间:2018-01-20 06:35:02

标签: python numpy scipy python-imaging-library

我正在尝试打开尺寸为(520,696)的图像,但是当我使用此

array = np.array([np.array(Image.open(folder_path+folders+'/'+'images'+'/'+image))], np.int32).shape`

我的形状为

(1, 520, 696, 4)

问题在于这个形状我无法使用toimage(array)将其转换为图像;我得到了

  对于任何模式,

'arr'都没有合适的数组形状。

有关如何仅使用(520,696)读取该图像的任何建议?

2 个答案:

答案 0 :(得分:3)

问题是额外的愚蠢维度。您可以使用以下方法删除它:

arr = np.squeeze(arr)

答案 1 :(得分:1)

您应该将图片作为单个图片加载,而不是将其作为堆栈加载,然后删除不相关的堆栈维度。基本程序可能是这样的:

from PIL import Image

pic = Image.open("test.jpg")
pic.show()                     #yup, that's the picture

arr = np.array(pic)            #convert it to a numpy array
print(arr.shape, arr.dtype)    #dimension and data type
arr //= 2                      #now manipulate this array

new_pic = Image.fromarray(arr) #and keep it for later
new_pic.save("newpic.bmp")     #maybe in a different format