方法一:利用PIL中的Image函数,这个函数读取出来不是array格式
这时候需要用 np.asarray(im) 或者 np.array()函数;区别:np.array() 是深拷贝,np.asarray() 是浅拷贝。
fromPILimportImage
importnumpyasnp
I=Image.open('./cc_1.png')
I.show()
I.save('./save.png')
I_array=np.array(I)
printI_array.shape
方法二:利用matplotlib.pyplot as plt用于显示图片
#matplotlib.imageasmpimg用于读取图片
#并且读取出来就是array格式
importmatplotlib.pyplotasplt
importmatplotlib.imageasmpimg
importnumpyasnp
I=mpimg.imread('./cc_1.png')
printI.shape
plt.imshow(I)
方法三:利用opencv-python接口
#cv2.imread()读出来同样是array形式,但是如果是单通道的图,读出来的是三通道的
importcv2
I=cv2.imread('./cc_1.png')
printI.shape
方法四:图像的读取我一般喜欢用scipy这个库里的东西,读出来是矩阵形式,并且按照(H,W,C)形式保存。
importmatplotlib.pyplotasplt
fromscipyimportmisc
importscipy
I=misc.imread('./cc_1.png')
scipy.misc.imsave('./save1.png',I)
plt.imshow(I)
plt.show()
方法五:用skimage库
fromskimageimportio,data img=data.lena() io.imshow(img)
python学习网,大量的免费python视频教程,欢迎在线学习!