
方法一:利用PIL中的Image函数,这个函数读取出来不是array格式
这时候需要用 np.asarray(im) 或者 np.array()函数;区别:np.array() 是深拷贝,np.asarray() 是浅拷贝。
1 2 3 4 5 6 7 8 | 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用于显示图片
1 2 3 4 5 6 7 8 | # 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接口
1 2 3 4 | #cv2.imread()读出来同样是 array 形式,但是如果是单通道的图,读出来的是三通道的
import cv2
I = cv2.imread( './cc_1.png' )
print I.shape
|
方法四:图像的读取我一般喜欢用scipy这个库里的东西,读出来是矩阵形式,并且按照(H,W,C)形式保存。
1 2 3 4 5 6 7 | 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库
1 2 3 | from skimage import io,data
img=data.lena()
io.imshow(img)
|
python学习网,大量的免费python视频教程,欢迎在线学习!