Python+OpenCV教程番外篇2:Matplotlib显示
2018-01-05 本文已影响855人
e8bcb7ff1632
主站:http://ex2tron.wang
原文:Python+OpenCV教程番外篇2:Matplotlib显示图像
学习如何使用Matplotlib显示OpenCV图像。
Matplotlib是Python的一个非常重要的绘图库,更多内容可以去官网学习。
显示灰度图
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('lena.jpg', 0)
# 灰度图显示,cmap(color map)设置为gray
plt.imshow(img, cmap='gray')
plt.show()
结果如下:
显示彩色图
OpenCV中的图像是以BGR的通道顺序存储的,但Matplotlib是以RGB模式显示的,所以直接在Matplotlib中显示OpenCV图像会出现问题,因此需要转换一下:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('lena.jpg')
img2 = img[:, :, ::-1]
# 或使用
# img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 显示不正确的图
plt.subplot(121),plt.imshow(img)
# 显示正确的图
plt.subplot(122)
plt.xticks([]), plt.yticks([]) # 隐藏x和y轴
plt.imshow(img2)
plt.show()
注解:
img[:,:,0]
表示图片的蓝色通道,熟悉Python的同学应该知道,对一个字符串s进行翻转用的是s[::-1]
,同样img[:,:,::-1]
就表示BGR通道翻转,变成RGB
结果如下: