plt.show 和 cv2.imshow 的区别?
Posted
技术标签:
【中文标题】plt.show 和 cv2.imshow 的区别?【英文标题】:Difference between plt.show and cv2.imshow? 【发布时间】:2016-11-30 14:06:50 【问题描述】:为什么使用plt.show
&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.show
的图片:
第二张是原图:
plt.show()
是否需要进行一些修改?
【问题讨论】:
【参考方案1】: OpenCV - BGR and Matplotlib - RGB
OpenCV:
https://docs.opencv.org/2.4/doc/tutorials/introduction/display_image/display_image.html
Matplotlib:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html
【讨论】:
【参考方案2】:因为 OpenCV 以 BGR 顺序而不是 RGB 存储图像。
试试plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
有关示例,请参阅 here。
【讨论】:
以上是关于plt.show 和 cv2.imshow 的区别?的主要内容,如果未能解决你的问题,请参考以下文章