pylab imshow颜色未完全显示

时间:2018-07-14 03:41:29

标签: opencv matplotlib rgb imshow

我一直在尝试通过pylab用打开的图像实现一些图像处理技术。问题是,我可以通过pylab打开并查看图像,但是颜色似乎有很大不同。似乎没有显示红色。

  

Pylab显示的图像

  

原始图片(以及在cv2.imshow中显示的图片

任何人都可以帮助我使pylab正常工作吗? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

由于OpenCV和Matplotlib中使用的颜色顺序不同,因此颜色看起来也不同:

  • OpenCV默认使用BGR格式。
  • Matplotlib默认使用RGB格式。

如您所见,通道是反向的,因此您得到了一个奇怪的彩色物体。

情况1:如果您正在使用cv2.imread()

阅读图像
  • 您可以使用cv2.imshow()进行显示。
  • 但是,如果使用Matplotlib的imshow()显示它,则必须反转通道。 plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

情况2:如果您正在使用cv2.imread()

阅读图像
  • 您可以使用Matplotlib的plt.imshow()进行显示。
  • 但是,如果您使用OpenCV的cv2.imshow()显示它,则必须再次反转频道。 cv2.imshow(cv2.cvtColor(image, cv2.COLOR_RGB2BGR))

情况3::如果不确定如何读取图像,只需交换第一和最后一个频道: cv2.imshow('Image', im[...,::-1])