我正在尝试运行一个从OpenCV读取图像的简单程序。但是,我收到了这个错误:
error: ......\modules\highgui\src\window.cpp:281: error: (-215) size.width>0 && size.height>0 in function cv::imshow
知道这个错误意味着什么吗?
这是我的代码:
from matplotlib import pyplot as plt
import numpy as np
import cv2
img = cv2.imread('C:\\Utilisateurs\\Zeineb\\Bureau\\image.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
答案 0 :(得分:4)
“错误:(-215)”表示断言失败。在这种情况下,cv :: imshow声明给定的图像是非空的:https://github.com/opencv/opencv/blob/b0209ad7f742ecc22de2944cd12c2c9fed036f2f/modules/highgui/src/window.cpp#L281
如Getting Started with Images OpenCV Python教程中所述,如果该文件不存在,则cv2.imread()将返回None
;它不会引发异常。
因此,以下代码也会导致“(-215)size.width> 0&& size.height> 0”错误:
img = cv2.imread('no-such-file.jpg', 0)
cv2.imshow('image', img)
检查以确保文件实际存在于指定路径中。如果是,则可能是图像已损坏,或者是空图像。
答案 1 :(得分:1)
我在Windows上遇到了同样的错误。但是,没有答案对我有帮助。我意识到问题是图像路径上的单反斜杠(\
)而不是双反斜杠(\\
)。有关差异,请参见the link。
问题场景:
import cv2
mypath = "D:\temp\temp.png"
img = cv2.imread(mypath, 1)
cv2.imshow('test', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Traceback (most recent call last):
File "<input>", line 1, in <module>
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-2b5g8ysb\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
固定方案:
import cv2
mypath = "D:\\temp\\temp.png"
img = cv2.imread(mypath, 1)
cv2.imshow('test', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我希望它可以帮助具有类似经验的其他人。
答案 2 :(得分:0)
导入cv2
resim = cv2.imread('indir.png',0)
cv2.imshow('d',resim)
cv2.waitKey(0)
cv2.destroyAllWindows()
答案 3 :(得分:0)
确保您给出了正确的图像路径。 仅当您指定了错误的路径时,才会出现此错误。
答案 4 :(得分:0)
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret,frame = cap.read()
cv2.rectangle(frame, (100, 100), (200, 200), [255, 0, 0], 2)
# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
**如果设备的相机访问权限为OFF,则此代码会给出错误;例如:cv2.imshow('frame',frame)cv2.error:OpenCV(4.0.0) C:\ projects \ opencv-python \ opencv \ modules \ highgui \ src \ window.cpp:350: 错误:(-215:声明失败)size.width> 0 && size.height> 0 in 函数'cv :: imshow'
So You should turn ON it**
答案 5 :(得分:0)
无论何时出现此错误,
如果输出为“ None”,则我们可以通过在“ print(img)
”之后使用“ img = cv2.imread('C:\\Utilisateurs\\Zeineb\\Bureau\\image.jpg',0)
”命令进行检查,则图像的路径或名称错误。如果输出是矩阵,则图像读取成功。
在代码“ cv2.waitKey(0)
”中,零表示要在屏幕上显示图像的毫秒数,因此它应大于零,例如5000。
答案 6 :(得分:0)
我认为这取决于IDE +图像位置问题的路径
example
img = cv2.imread("kang34.jpg", 0) # direct use
example
img = cv2.imread("C:\\Users\\DEBASISH\\AppData\\Local\\Programs\\Python\\Python36\\Projects\\kang34.jpg", 0) # use proper syntax and full path of image location
答案 7 :(得分:0)
当您尝试显示空白图像时,发生此错误。使用cv2.imread()
时,图像可能未正确加载,可能是由于图像不存在,文件路径错误或文件扩展名错误所致。您可以通过打印图像的形状来检查图像是否正确加载
image = cv2.imread('picture.png')
print(image.shape)
您将获得类似这样的内容,该结果返回行,列和通道数的元组
(400,391,3)
如果OpenCV无法加载图像,则在尝试打印形状时会抛出此错误
AttributeError:“ NoneType”对象没有属性“ shape”
答案 8 :(得分:0)
img=cv2.imread('testpaper01-01.png')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
您必须在代码中提及图像文件的相同格式(例如:-。jpg / .png / .jpeg / .tif等),并且图像文件的目录必须与源代码相同,我也遇到了同样的错误,但是我以这种方式纠正了
答案 9 :(得分:0)
尝试使用正确的python PATH设置重新安装您使用的IDE。
答案 10 :(得分:-1)
import numpy as np
import cv2
img=cv2.imread('E:\itsme\Camera\pic.jpg',10)
cv2.imshow('image',img)
cv2.waitkey(0)
cv2.destroyallwindows()
只需添加完整的图片目录即可。
答案 11 :(得分:-3)
当我找到jpg的endswitch时,我的问题是相同的-是jpEg。 )