python ‘STR‘无法转为filename

报错信息:

[ WARN:0@1.135] global loadsave.cpp:248 cv::findDecoder imread_('微信图片_2024.jpg'): can't open/read file: check file path/integrity
Traceback (most recent call last):
  File "D:\file_code\PycharmProjects\Paralysis\DistanceGui.py", line 14, in <module>
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
 

原因: opencv不接受non-ascii的路径。

解决办法1:把文件的中文字符删去。

如将"微信图片—2024"改为"2024"。就不会报错。

更改前:image = cv2.imread("微信图片_2024.jpg")

更改后:image = cv2.imread("2024.jpg")   当然图片名要跟着改。

解决办法2:先用先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码。

image = cv2.imdecode(np.fromfile(image_path,dtype=np.uint8),-1)
如:更改前:
image = cv2.imread("微信图片_2024.jpg")
更改后:
image = cv2.imdecode(np.fromfile("微信图片_2024.jpg",dtype=np.uint8),-1)
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值