解决openCV图片读取相关报错
问题描述
使用python 3.6 openCV 4.4 时,cv2.cvtColor()报错:
1 | cv2.error: OpenCV(4.4.0) |
以及cv2.imshow()报错:
1 | cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: |
诊断
使用cv2.imread()读取图片后,print(读取的图片),观察输出结果是否为”None”。如果为”None”,说明图片根本就没读进去。需要注意的是imread没有读到图片,也不会报错。但是后续图片处理就会报错。
处理方法
发现了问题是由图片读取失败导致,那就好解决了。可以按照以下步骤:
- 检查路径是否出错。需要注意以下两种情况:
- 路径中有中文->方案A;
- 路径中有“\”->方案B;
- 检查图片是否存在。
- 若不存在图片,则…;
- 图片名包括中文->方案A;
解决方案A:
要注意,路径或图片名有中文时是不可以直接用imread的哦。可以使用以下函数:
1 | def cv_imread(file_path): |
代码来自:https://www.zhihu.com/question/67157462/answer/251754530
解决方案B:
如果代码中的路径有“\”,可能会被识别为逃逸符,建议改成“\”。