Python使用cv2读取图片时报错

前提

首先确保你已经正确安装了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&A

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)

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值