使用python 3.6 openCV 4.4 时,cv2.cvtColor()报错:
123
cv2.error: OpenCV(4.4.0)C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-jmqlme5z\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
以及cv2.imshow()报错:
12
cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: error: (-215) size.width>0 && size.height>0 in function cv::imshow
使用cv2.imread()读取图片后,print( 读取的图片 ),观察输出结果是否为”None”。如果为”None”,说明图片根本就没读进去。需要注意的是 imread没有读到图片,也不会报错 。但是后续图片处理就会报错。
发现了问题是由图片读取失败导致,那就好解决了。可以按照以下步骤:
解决方案A:
要注意,路径或图片名有中文时是不可以直接用imread的哦 。可以使用以下函数:
def cv_imread(file_path): cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1) return cv_img
代码来自: https://www.zhihu.com/question/67157462/answer/251754530
解决方案B:
如果代码中的路径有“\”,可能会被识别为逃逸符,建议改成“\”。