本文主要实现用Matplotlib显示灰度图像和彩色图像。
有些同学在使用Matplotlib显示彩色图像时,会得到不理想的效果,具体原因和解决办法请看下文!
1. Matplotlib显示灰度图像
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('test.jpg', 0)
plt.imshow(img, cmap = 'gray')
#plt.xticks([]), plt.yticks([])#去除横纵坐标
plt.show()
2. Matplotlib显示彩色图像
有时候用Matplotlib显示彩色图像时,得到的结果并不令人满意,是因为:
Matplotlib是RGB,而Opnecv是BGR,所有我们需要先将Opencv读入的彩色图像拆分成B、G、R三个通道,然后再按R、G、B顺序合并三个通道,代码如下
img = cv2.imread('test.jpg')
b, g, r = cv2.split(img)
img2 = cv2.merge([r, g, b])
plt.subplot(121);plt.imshow(img)
plt.subplot(122);plt.imshow(img2)
plt.show()
再看看以下代码:
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('test.png')
b, g, r = cv2.split(img)
img2 = cv2.merge([r, g, b])
cv2.imshow('bgr image', img)
cv2.imshow('rgb image', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
知道哪里不同了吧!!!!!!