当用OpenCV读取彩色图像时,OpenCV是以(BGR)的顺序存储图像数据的,而Matplotlib是以(RGB)的顺序显示图像的。
可以用下面的程序来证明这一点
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('lena_std.tif')
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()
cv2.imshow('bgr image',img)
cv2.imshow('rgb image',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
程序运行结果如下:
Matplotlib显示结果
OpenCV显示结果
&

本文探讨了OpenCV在处理彩色图像时使用BGR顺序,而Matplotlib使用RGB顺序显示图像的问题,导致两者显示效果不同。通过示例代码,展示了这种差异,并引用了Stack Overflow的相关讨论作为参考。
最低0.47元/天 解锁文章
1751

被折叠的 条评论
为什么被折叠?



