【问题标题】:OpenCV not showing image in pythonOpenCV没有在python中显示图像
【发布时间】:2020-07-29 00:02:05
【问题描述】:

这是我用于 OpenCV 显示图像的代码。它只显示一个空白屏幕而不是显示图片。

import cv2

# location and name of file is completely correct
img = cv2.imread("./Resources/img-2.jpg")

# Doesn't give a null so its okay
print(img.shape)

# suspecting that problem is here
cv2.imshow("preview", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

图像存储在正确的位置,当我对视频和网络摄像头使用类似的方法时,它可以完美运行。 以下是输出的内容-

【问题讨论】:

  • 与其说“它不打印空值”,不如说它打印了什么。也请尝试制作/寻找不同的形状图像,看看它的尺寸是否正确。
  • 它给了我一个很长的嵌套矩阵列表,我认为这是处理图像后的遍历值
  • 不,如果你在代码中使用print(img.shape),你应该得到类似(480,640,3)
  • 现在我再次执行了它,它给了我 (1446, 698, 3)。高度和宽度尺寸有问题吗?
  • 好的,这对你的形象来说是合理的。现在从互联网上抓取一张小图像,或者制作一个小屏幕抓取,然后在复制并保存现有图像后,用较小的图像覆盖现有图像,看看它是否有效,尺寸会改变以匹配较小的图像。这将证明您的程序确实在查看正确的图像。

标签: python opencv computer-vision


【解决方案1】:

尝试使用 matplotlib 代替:

import matplotlib.pyplot as plt
import cv2

img = cv2.imread("./Resources/img-2.jpg")
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) # convert img pixels to RGB format, so that matplotlib displays the image properly

plt.imshow(img)
plt.show()

如果它仍然给你一个空白图像,那么问题可能来自你的文件或文件名。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 2013-10-17
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2015-12-03
    • 2013-09-12
    • 2013-10-31
    • 1970-01-01
    相关资源
    最近更新 更多