我正在尝试运行一个简单的程序,该程序从OpenCV中读取图像。但是,我遇到了这个错误:
error: ......moduleshighguisrcwindow.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()
"错误:(--215("表示断言失败。
正如从"映像"启动中指出的那样,如果文件不存在,则cv2.imread((将返回 None
;它不会引起例外。
因此,以下代码还会导致"(-215(size.width> 0& amp; size.height> 0"错误:
img = cv2.imread('no-such-file.jpg', 0)
cv2.imshow('image', img)
检查以确保文件实际存在于指定的路径上。如果确实如此,则可能是图像已损坏,或者是空图像。
此错误显示何时,
- 图像的路径是错误的。
- 图像的名称是错误的。
我们可以在' img = cv2.imread('C:\Utilisateurs\Zeineb\Bureau\image.jpg',0)
'之后使用' CC_3'之后使用' CC_3'的命令对其进行检查,如果输出为"无",则图像的路径或名称是错误的。如果输出是矩阵,则图像读取成功。
在代码' cv2.waitKey(0)
'中,零显示了将在屏幕上显示的毫秒,以便大于5000的零。
确保您给出了正确的图像路径。仅当您给出错误的路径时,此错误才会出现。
img=cv2.imread('testpaper01-01.png')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
您必须在代码中提及映像文件的相同格式(例如: - 。jpg/.png/.jpeg/.tif等(,并且图像文件的目录必须与源代码相同,我也有相同的错误,但我以这种方式纠正
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()
**如果设备的摄像机访问关闭,则此代码会出现错误;例如:cv2.imshow('frame',frame(cv2.error:opencv(4.0.0((4.0.0( c: projects opencv-python opencv 模块 highgui src window.cpp:350: 错误:(-215:断言失败(size.width> 0&&size.height> 0 in 功能'cv :: imshow'
So You should turn ON it**
我在Windows上遇到了相同的错误。但是,没有任何答案对我有帮助。我意识到,这个问题是单个后斜线((,而不是图像路径上的双反斜击(
\
(。有关差异,请参见链接。
有问题的方案:
import cv2
mypath = "D:temptemp.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:UsersappveyorAppDataLocalTemp1pip-req-build-2b5g8ysbopencvmoduleshighguisrcwindow.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()
我希望它能帮助其他经历类似经验的人。
当您尝试显示空图像时会发生此错误。该图像可能无法正确加载,并且可能是由于不存在的图像,不正确的文件路径或不正确的文件扩展名时引起的。您可以通过打印其形状
来检查图像是否正确加载image = cv2.imread('picture.png')
print(image.shape)
您将获得类似的东西,这些元组的元组是行,列和频道
(400,391,3(
如果OpenCV无法加载图像,则在尝试打印形状
时会丢弃此错误attributeError:'nontype'对象没有属性'shape'
我认为这取决于图像位置问题的IDE 路径
- 在Python闲置中,您可以直接从那里的同一文件夹运行文件
example
img = cv2.imread("kang34.jpg", 0) # direct use
- 在Intellij Idea中,您必须给图像所在的图像的完整路径
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
尝试使用适当的python路径设置来重新安装您使用的IDE。
我在使用Inlcude标头文件和库不匹配的InlCude标头文件时也有相同的问题。希望它会有所帮助!
import numpy as np
import cv2
img=cv2.imread('E:itsmeCamerapic.jpg',10)
cv2.imshow('image',img)
cv2.waitkey(0)
cv2.destroyallwindows()
只需在字符串中添加图片的完整目录。