irpas技术客

出现 error: (-215:Assertion failed) size.width>0 && size.height>0 in funct

未知 1158

目录 1. 问题所示2. 原理分析3. 解决方法

1. 问题所示

读取图片的时候出现如下错误:

[ WARN:0@0.009] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('D:\test_code\python\text.jpg'): can't open/read file: check file path/integrity Traceback (most recent call last): File "D:\test_code\python\main.py", line 7, in <module> cv2.imshow('image', img) cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

截图如下所示:

2. 原理分析

出现报错,查看具体的报错原因: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

尺寸都是0(前提是图片正确),说明没有读取到有效图片

根本原因是路径不正确,还有一个隐藏问题是 有中文路径

3. 解决方法

既然路径要正确,使用os库,查看是否为正确路径以及获取当前路径:

print(os.path.exists("D:\\test_code\\python\\test.jpg")) print(os.getcwd())

获取到正确路径之后,再查看是否有隐藏问题(中文显示)

查看是否有中文路径 具体如下:(这样会显示错误,因为包括了中文)

同样也是有解决方法,将其更改为英文目录 或者在代码模块中对应转换:img = cv2.imdecode(np.fromfile(img, dtype=np.uint8), 1) (这个代码 我试了下我行不通 = - =)

所以我通过更改英文目录

补充知识

对应路径的引入有以下几种方法

img=cv2.imread("test.jpg",0) # 确保是同一个子目录 # 以下都是绝对路径 img=cv2.imread("D:\\test_code\\python\\test.jpg",0) img=cv2.imread("D:/test_code/python/test.jpg",0) img=cv2.imread("D://test_code//python//test.jpg",0)

完整截图如下:


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #出现 #error #215Assertion #failed #sizewidth0 #ampamp #sizeheight0 #in