PIL的Image.open()读入图片后并不是numpy数组array格式,而是Image格式。
这对于后面图像处理以及神经网络读入图片数据会带来麻烦,例如用卷积神经网络读入数据一般以数组格式输入,有时需要将代表图片的矩阵形状进行转换,此时PIL的Image.open()读入的格式是不能用reshape方法的。
处理方式其实很简单,用np.array()函数直接进行转换就可以。
示例代码:
img = Image.open(path)
re_img = np.asarray(img)
将变成array的图片矩阵变回Image对象,使用Image中的fromarray方法:
Image.fromarray(np.uint8(re_img))