赞
踩
首先确保你已经正确安装了cv2模块,如果还没有安装,可以尝试使用 pip install opencv-python
命令在控制台进行安装。
cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:787: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
cv2读取图片时,图片的路径不能包含有中文或者空格,只能为英文或者数字否则报错!
一般使用的imread和imwrite文件路径是不能有中文的,但我们可以用其他方法代替。
1.读取包含中文路径下的图片的方法
- # 将下面这句读取图片的代码替换掉
- img = cv2.imread(file_path) # file_path是你的图片路径
-
- # 替换成
- img = cv2.imdecode(numpy.fromfile(file_path, dtype=numpy.uint8), -1) # 记得要 import numpy
2.将图片保存到包含中文路径下的方法
- # 将下面的这句替换掉
- cv2.imwrite(save_path, img)
-
- # 可以替换成
- cv2.imencode('.jpg', img)[1].tofile(file_path) # 英文或中文路径均适用
Q:为什么 OpenCV 不支持中文路径?
A:OpenCV 库是在 C++ 写的,而在较早版本的 C++ 标准中并未提供直接的 Unicode 或者多字节字符编码支持。所以,OpenCV 在面对中文路径时,可能解析出现问题,因此最好使用 contains only ASCII 的字符路径。这个问题不只存在于Python中,其他使用 OpenCV 的语言,如 C++,也会遇到。
转自知乎大神Python使用cv2读取图片时报错:cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv- - 知乎 (zhihu.com)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。