【问题标题】:imshow() giving error in Python for imageimshow() 在 Python 中为图像提供错误
【发布时间】: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

【问题讨论】:

  • 显示错误信息!
  • 我的猜测是您的程序无法读取 drop.jpg。检查它是否在正确的目录中。其次,在 imread 之后,您应该验证您的图像是否已成功重新读取,然后继续进行 imwrite。

标签: python opencv


【解决方案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您的答案添加解释,并说明适用的限制和假设。
      猜你喜欢
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 2017-04-25
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多