matplotlib/PIL/cv2/skimage读取和显示图片的方式
程序员文章站
2022-03-20 18:04:41
...
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三通道数组,直接用plt显示即可。
2.PIL
from PIL import Image
img = Image.open(picturepath)
plt.imshow(img)
plt.axis('off')
plt.show()
用PIL的Image导入图片之后会得到一个Image的对象,这个对象可以通过convert(“RGB”)函数,然后用np.array()函数转成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
import matplotlib.pyplot as plt
img=cv2.imread(picturepath)
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()
用cv2.imread()读到的图像,是BGR三通道图像,可以用cvtColor()函数转换一下。不过用plt.imshow()
方法显示的灰度图和黑白图像等颜色是不准确的,cv2还有一种显示方法是不需要转换RGB通道的:
import cv2
img=cv2.imread(picturepath)
cv2.imshow("image", img)
cv2.waitKey(0)
4.skimage
from skimage import io
img=io.imread(picturepath)
plt.imshow(img)
plt.show()
参考:
Python 中各种imread函数的区别与联系
(PIL)Image/(matplotlib.image)mpimg/(cv2)imread/(skimage)io.imread的细节和区别
上一篇: Python 数据清洗