Opencv学习之:解决用 plt 显示 opencv 读取的图片时,有色差问题

问题

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 显示 opencv 读取的图片时,有色差问题_第1张图片

从这里看到,当我们 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)

Opencv学习之:解决用 plt 显示 opencv 读取的图片时,有色差问题_第2张图片

你可能感兴趣的:(Opencv学习)