plt.imshow 和 cv2.imshow 的区别?

新手上路,请多包涵

为什么使用 plt.imshow & cv2.imshow() 调用同一图像时输出图像不同?

这是我的代码:

 import cv2
import numpy as np
from matplotlib import pyplot as plt

src=cv2.imread('fruits1.jpg') # Source image

plt.subplot(211),plt.imshow(src),plt.title('image')
plt.xticks([]),plt.yticks([])
plt.show()

cv2.imshow('image',src)
cv2.waitKey(0)
cv2.destroyWindow()

这是来自 plt.imshow 的图像:

plt.imshow 的图像输出

第二个是原始图像:

cv2.show 的图像输出

plt.imshow() 是否需要进行一些修改?

原文由 Aman Garg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 775
2 个回答

因为 OpenCV 以 BGR 顺序而不是 RGB 顺序存储图像。

尝试 plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

请参阅 此处 的示例。

原文由 laks 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题