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