opencv 读取图像断言失败
Posted
技术标签:
【中文标题】opencv 读取图像断言失败【英文标题】:opencv read image assertion failed 【发布时间】:2018-01-06 01:08:40 【问题描述】:我是 python 和 opencv 的新手。 试图读取图像。
这是我的代码:-
import cv2
import numpy
img = cv2.imread('Test1.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
这是生成的错误:-
OpenCV 错误:imshow 中的断言失败 (size.width>0 && size.height>0),文件 /opt/concourse/worker/volumes/live/68762549-a7cd-401a-4fc4-6547354af396/volume/opencv_1512680491081/工作/模块/highgui/src/window.cpp, 第 331 行 Traceback(最近一次调用最后一次):文件 “/Users/vinayak/PycharmProjects/Python_test1/test_img.py”,第 4 行,在 cv2.imshow('image',img) cv2.error: /opt/concourse/worker/volumes/live/68762549-a7cd-401a-4fc4-6547354af396/volume/opencv_1512680491081/work/modules/highgui/src/window.cpp :331: 错误:(-215) size.width>0 && size.height>0 in function imshow
请帮我找出故障。提前致谢!
【问题讨论】:
Assertion failed (size.width>0 && size.height>0)的可能重复 【参考方案1】:这个错误意味着你没有加载图像并且 img 是空的。
在 cv2 的 imread 中存在一个已知错误。您可以尝试用这部分替换 imread 调用:
import matplotlib.pyplot as plt
img = plt.imread('Test1.jpg')
matplotlib 在 cv2 上没有同样的错误。
【讨论】:
【参考方案2】:代码是正确的,这是在 Python 中加载和显示图像 unsing OpenCV 的正确方法,您传递的附加参数 (0) 表示您将图像加载为灰度并且是枚举 cv 的数值.IMREAD_GRAYSCALE
opencv load image tutorial
link to enums
为了完整起见,这里是我测试的基本代码
import cv2 as cv
img = cv.imread('C:\\path\\to\\my\\Image\\image.bmp',0)
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
因此,问题很可能与您传递给 cv.imread 函数的路径有关
您确定您的图像与您在同一个工作目录中吗 使用?(我敢打赌不是...) 您是否尝试使用完整的绝对路径更改您提供的相对路径 路径?【讨论】:
以上是关于opencv 读取图像断言失败的主要内容,如果未能解决你的问题,请参考以下文章