繁体   English   中英

plt.show 和 cv2.imshow 的区别?

[英]Difference between plt.show and cv2.imshow?

为什么在使用plt.show & cv2.imshow()调用相同图像时 output 图像存在差异?

这是我的代码:

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 的图像输出

第二个是原始图像:

cv2.show 的图像输出

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

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

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

请看这里的例子。

您可以使用:

plt.imshow(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))
                        OR
plt.imshow(image[:,:,::-1])  # here we are reversing the channel order

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM