问题
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('1.jpg')
cv2.imshow('img',img)
plt.figure()
plt.imshow(img)
plt.show()
cv2.waitKey(0)
从这里看到,当我们 opencv 读取到的图片,再用 plt 展示出来,竟然会产生色差;
- 这个是因为,cv2.imread 读取图片的通道是 BGR,而 plt 展示出来的顺序是 RGB 所以,我们再 cv2.imread 读取图片的时候,只需要调整一下通道顺序即可。
修正过后的代码
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('1.jpg')
cv2.imshow('img',img)
plt.figure()
plt.imshow(img[:,:,[2,1,0]]) # 调整一下第三维的通道即可,因为前两维是宽和高,不用调整
plt.show()
cv2.waitKey(0)