python - cv2.imshow() 函数如何在 BGR 模型中工作?

标签 python image opencv

在RGB颜色模型中,cv2.imshow()按bgr顺序工作,当使用cv2.imshow()加载图片时,在中显示>matplotlib.plot.show()函数,出错是因为plot.show()使用了rgb顺序,可以通过反转图像中b,g,r的 channel 来解决,但是当我制作RGB颜色时模型转换为其他颜色模型,如HSV、YUV、YCbCr,当使用plot.show()时它仍然不同于cv2.show()。所以当RGB->HSV、YUV、YCbCr 颜色模型,cv2.show() 是否仍然像 v、s、h 映射到 b、g、r 一样工作?和 plt.show() 使用 h,s,v 映射到 r,g,b 的顺序?无论什么颜色模型使用 cv2.show()plot.show(),它只需使用 b、g、r 和 r、g、b 命令映射到更改的 channel ?就像 HSV 中的 v、s、h 和 h、s、v,YUV 中的 v、u、y 和 y、u、v?

img_HSV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HSV)
plt.show(img_HSV )
cv2.show(img_HSV )
plt.show(img_HSV [:,:,::-1])

第 1 行代码的结果与第 2 行不同,但第 3 行与第 2 行相同。 所以 plt.show 通过 h、s、v 映射到 r、g、b 而 cv2.show 通过 v、s、h 映射到 b、g、r?

最佳答案

plt.show(img_HSV ) 假设输入是 RGB cv2.show(img_HSV) 假设输入是 BGR

因此,如果您以不同的格式提供输入,他们无论如何都会采用他们假设的 channel 。例如,cv2.imshow(img_HSV ) 方法会将 Hue 值设为蓝色,因此会有不同的图像表示。

因此,在处理完其他颜色空间后,只需将它们转换回 RGB 或 BGR 以用于 imshow() 函数。

关于python - cv2.imshow() 函数如何在 BGR 模型中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65695172/

相关文章:

java - 使用 PHP 或 Java 将带有foreignObject 标签的 svg 导出为图像

c++ - 如何对单个相机的多个图像中的点进行三角测量?

python - 比较 python 中的 unicode 和 datetime.datetime

python - 如何向经过训练和测试的 PyBrain 网络提供输入以及如何获得结果

python - 主脑游戏无法运行

html - 博主数据 :post. firstImageUrl

python - 带有表单的 django ListView

iphone - html img 标签中的图像在我的 iPhone 应用程序中变得模糊

opencv - 使用图像比较检测丢失的对象

python-2.7 - 使用触发器的 Ximea Python 脚本导致空白图像