imshow() 在 Python 中为图像提供错误

Posted

技术标签:

【中文标题】imshow() 在 Python 中为图像提供错误【英文标题】:imshow() giving error in Python for image 【发布时间】:2016-08-14 23:47:14 【问题描述】:
import cv2
import numpy as np

img=cv2.imread("drop.jpg",cv2.IMREAD_GRAYSCALE)

cv2.imshow("blue", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

imshow 函数出错,其余代码工作正常。

错误信息:

OpenCV 错误:断言失败 (size.width>0 && size.height>0) in 简历::imshow,文件 D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp,第 289 行 回溯(最近一次通话最后):文件“C:\Users\D\Desktop\new 2.py”,第 6 行,在 cv2.imshow("image",img) cv2.error: D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp:289: 错误:(-215) size.width>0 && size.height>0 in function cv::imshow

【问题讨论】:

显示错误信息! Assertion failed (size.width>0 && size.height>0)的可能重复 我的猜测是您的程序无法读取 drop.jpg。检查它是否在正确的目录中。其次,在 imread 之后,您应该验证您的图像是否已成功重新读取,然后继续进行 imwrite。 【参考方案1】:

cv2.imread() 找不到您的图片文件,即 drop.jpg

【讨论】:

【参考方案2】:

我在 windows X64 操作系统上运行 opencv 3.0.1 时遇到了同样的问题。

查看代码发现cv2.imread的第一个参数不正确,即图片不存在。

当我将图像文件复制到正确的路径时,代码运行正常。

我建议您确保图像文件路径正确。

【讨论】:

【参考方案3】:
img=cv2.imread("D:\Matlab\Images\d.jpg",cv2.IMREAD_COLOR)

以上行应修改为:

img=cv2.imread("D:\\Matlab\\Images\\d.jpg",cv2.IMREAD_COLOR)

【讨论】:

这解决了我面临的问题。我的菜鸟错误;我应该一直在使用与系统无关的路径引用(例如 os.path.join)。【参考方案4】:
import cv2
import numpy as np

img=cv2.imread("D:\Matlab\Images\d.jpg",cv2.IMREAD_COLOR)

cv2.imshow("blue", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【讨论】:

欢迎来到 Stack Overflow!感谢您提供此代码 sn-p,它可能会提供一些即时帮助。一个正确的解释would greatly improve 其教育价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有类似但不相同的问题的读者更有用。请edit您的答案添加解释,并说明适用的限制和假设。

以上是关于imshow() 在 Python 中为图像提供错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我用pycharm的cv2.imshow会报错,一直没有解决,要自闭了?

使用 imshow + waitKey 显示图像 opencv+python 时出现问题

python plt.imshow 怎么用

2021-10-30 vscode+Xming+树莓派使用python-opencv的imshow()函数时显现图像为灰色问题

Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

cv2.imshow 图像窗口放置在可视屏幕之外