当前位置:   article > 正文

Python使用cv2读取图片时报错_cv2.error: opencv(4.8.1)

cv2.error: opencv(4.8.1)

前提

首先确保你已经正确安装了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.读取包含中文路径下的图片的方法

  1. # 将下面这句读取图片的代码替换掉
  2. img = cv2.imread(file_path) # file_path是你的图片路径
  3. # 替换成
  4. img = cv2.imdecode(numpy.fromfile(file_path, dtype=numpy.uint8), -1) # 记得要 import numpy

2.将图片保存到包含中文路径下的方法

  1. # 将下面的这句替换掉
  2. cv2.imwrite(save_path, img)
  3. # 可以替换成
  4. 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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/822893
推荐阅读
相关标签
  

闽ICP备14008679号