相互转化:
from PIL import Image
import numpy as np
im = Image.open("/home/lw/a.jpg")
im.show()
img = np.array(im) # image类 转 numpy
img = img[:,:,0] #第1通道
im=Image.fromarray(img) # numpy 转 image类
im.show()
转载https://blog.csdn.net/liuweizj12/article/details/80221537
size不同:可以看到numpy类型都是hxw,而PIL的是wxh
另外我们可以看到scipy.misc和matplotlib.pyplot读取图片得到的数据类型是一样的。
from PIL import Image
import scipy.misc
import numpy as np
import matplotlib.pyplot as plt
a=scipy.misc.imread('/home/zzp/Test/a3.jpg')
scipy.misc.imshow(a)
print('a.shape='+str(a.shape),type(a))
b=Image.open('/home/zzp/Test/a3.jpg')
b.show()
print('b.size='+str(b.size),'b.width='+str(b.width),'b.height='+str(b.height),type(b),b.mode,b.format)
c=np.array(b)
print('c.shape='+str(c.shape),type(c))
img = plt.imread('/home/zzp/Test/a3.jpg')
plt.imshow(img)
plt.show()
print('img.shape'+str(img.shape),type(img))
# 输出如下
'''
a.shape=(375, 500, 3) <class 'numpy.ndarray'>
b.size=(500, 375) b.width=500 b.height=375 <class 'PIL.JpegImagePlugin.JpegImageFile'> RGB JPEG
c.shape=(375, 500, 3) <class 'numpy.ndarray'>
img.shape(375, 500, 3) <class 'numpy.ndarray'>
'''