在使用opencv读取图像时,报错显示:cv2.imshowb”window.cpp:376: error: (-215:Assertion failed)。查阅了很多资料,归纳起来就是两种情况:
1.文件路径含有中文字符
我仔细的查看了我的路径,发现并没有这种情况,全英文。
2.文件路径使用了 \t,被理解为了转移字符
在往程序中填写某个文件的路径时,一般复制到的路路径结果如下;
C:\Users\wang\Desktop\Work_Document\Code
我一般采用的办法就是不分青红皂白,把所有 \ 换成 /,这样就解决了这个问题。
3.第三种情况(此类报错实质)
我没有上述两种问题,找遍全网,也没解决掉问题,然后我把cv2.imread()的结果输出,这就发现了问题所在。
image = cv2.imread(image_path, 1)
print(image)
输出竟然为None。正常情况应该输出一个数组,原来根本就是没读到图片。我去检查了我写了图片路径,这就发现我的问题。
train_json = 'C:/Users/wang/Desktop/train/train_20191115.json'
train_path = './train/jpeg/'
我的图片路径,用了简写,导致路径出错,换成完整路径,瞬间就对了。
后来,我看到一个网友的一句话,这才反应过来,这种类型报错,其实本质一样,就是路径有问题,没读到图片。原文地址
其实还是自己太菜。