python - OpenCV BGR 和 PyPlot RGB

标签 python image opencv matplotlib

我了解到OpenCV的色序是BGR,而Matpotlib的Pyplot的色序是RGB。所以我开始尝试使用这两个库读取和显示图像。这是我试验过的图像:enter image description here

这只是一张黑白图像,某些部分带有红色。现在,当我使用 pyplot.imshow() 显示 OpenCV 读取的图像副本时,领带和鞋子的颜色变为蓝色。当我使用 cv2.imshow() 显示 pyplot.imread() 读取的图像副本时,也会发生同样的情况。但是,当我使用 cv2.imshow() 显示 cv2.imread() 读取的图像副本并使用 plt.imshow() 显示 plt.imread() 读取的副本时,颜色保持不变。 我只是好奇,想知道执行此类操作时幕后发生的事情。有人可以帮我吗?

最佳答案

假设您有这样一个向量:[0, 0, 255]

您知道有两种不同的颜色编码:RGB 和 BGR。所以,在第一种情况下你有蓝色,在第二种情况下你有红色。

现在我们调用RGB_Reader和BGR_Reader两个系统打开数字并显示。

如果我用 BGR_Reader 打开图像,我有 [0, 0, 255]。我将它传递给 RGB_Reader,仍然是 [0, 0, 255]。我看到了蓝色。当我传递它时,我会传递 [0, 0, 255]。我用 RGB_Reader 再次打开它,它又是蓝色的。

反之亦然。

这对你有意义吗?矢量不会改变,但它的解码方式会改变。

现在介绍另外一个东西,叫jpg_encoder。那个告诉人们把蓝色、红色和绿色放在哪里,并且可能会重新排序。

关于python - OpenCV BGR 和 PyPlot RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010960/

相关文章:

Python flask ajax 获取图像 - 最后编辑是问题

css - 有没有适合 Web 开发人员的免费图标?

python - 如何使用 OpenCV 和 Python 的蒙版(或透明度)在图像中查找模板?

android - 具有OpenCV人脸检测功能的OpenGL字节缓冲区

python - 无法在 OpenCV 上播放 .h264 视频?

python - Tkinter canvas create_image 和 create_oval 优化

Python:从树状数据结构中的列表列表创建组合

Python2.7 + MySQL查询变量列返回变量值

python - 我无法在Hadoop集群中执行mapreduce作业

image - 找不到变量 : props (react-native)