python中讀取圖片的方式有:
- PIL.Image.open
- scipy.misc.imread
- scipy.ndimage.imread
- cv2.imread
- matplotlib.image.imread
- skimge
- caffe.io.load_iamge
- ...
在這里選擇matplotlib爷光、PIL、cv2、skimage這四種常見的讀取方式,以邊日后查閱症昏,其它請參照博客。
1.matplotlib
import matplotlib.image as mpimg
img1=mpimg.imread(picturepath)
plt.axis('off')
plt.imshow(img1)
plt.show()
用mpimg導入圖片得到的即為RGB三通道數(shù)組郭膛,直接用plt顯示即可惜索。
2.PIL
from PIL import Image
img = Image.open(picturepath)
plt.imshow(img)
plt.axis('off')
plt.show()
用PIL的Image導入圖片之后會得到一個Image的對象,這個對象可以通過convert("RGB")函數(shù)黔姜,然后用np.array()函數(shù)轉(zhuǎn)成RGB三通道拢切,進而用plt顯示出來,如:
from PIL import Image
import numpy as np
img = Image.open(picturepath)
img=img.convert("RGB")
img=np.array(img)
plt.imshow(img)
plt.axis('off')
plt.show()
3.cv2
import cv2
img=cv2.imread(picturepath)
img=cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()
用cv2.imread()讀到的圖像秆吵,是BGR三通道圖像淮椰,可以用cvtColor()函數(shù)轉(zhuǎn)換一下
4.skimage
from skimage import io
img=io.imread(picturepath)
plt.imshow(img)
plt.show()
參考:
Python 中各種imread函數(shù)的區(qū)別與聯(lián)系
(PIL)Image/(matplotlib.image)mpimg/(cv2)imread/(skimage)io.imread的細節(jié)和區(qū)別