matplotlib显示opencv图像有色差

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()

通过这种方式转化一下即可。
matplotlib显示opencv图像有色差_第1张图片
matplotlib显示opencv图像有色差_第2张图片
这下子就正常了。

你可能感兴趣的:(机器学习,python编程高阶,opencv,matplotlib,python)