首页 >后端开发 >Python教程 >当我将 OpenCV 彩色图像加载到 matplotlib 中时,为什么它们显示不正确?

当我将 OpenCV 彩色图像加载到 matplotlib 中时,为什么它们显示不正确?

DDD
DDD原创
2024-10-25 03:35:291057浏览

Why are my OpenCV color images displaying incorrectly when I load them in matplotlib?

为什么 OpenCV 在加载时渲染彩色图像不正确?

当使用 Python OpenCV 加载彩色图像时,用户可能会遇到以下情况:图像显示的颜色不正确。出现此问题的原因是 OpenCV 和 matplotlib 使用不同的颜色顺序约定。

了解颜色顺序差异

OpenCV 使用 BGR(蓝-绿-红)作为默认值图像的颜色顺序,而 matplotlib 使用 RGB(红-绿-蓝)进行操作。这种差异会导致在 matplotlib 中显示 OpenCV 加载的图像时颜色失真。

解决方案:将 BGR 转换为 RGB

要解决此问题,请显式从 BGR 转换图像使用以下代码行将其转换为 RGB:

RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

使用转换后的图像进行显示

图像转换为 RGB 后,您可以将其用于绘图原始 BGR 图像的:

plt.subplot(1,2,i+1),plt.imshow(RGB_img,'gray')

通过采用这种方法,图像将以准确的颜色显示,与 matplotlib 使用的传统 RGB 顺序对齐。

以上是当我将 OpenCV 彩色图像加载到 matplotlib 中时,为什么它们显示不正确?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn