返回 导航

Python / AI

hangge.com

Python - 解决cv2. imread、imwrite无法读取或保存中文路径图片问题

作者:hangge | 2022-07-25 00:55

1,问题描述

(1)当使用 cv2.imread 读取路径中包含中文的图片时(包括文件名含有中文),虽然程序不会报错,但实际上什么也没读入。

(2)同样的如果 cv2.imwrite 存储带有中文路径图片,会发现图片无法成功生成,虽然程序同样也不会报错。

2,问题原因

因为 python 3.x 将系统字符编码默认为了 Unicode,而 opencv 读写图片函数的输入参数默认用 gbk 格式处理。

3,解决办法

(1)读取图片可以先用 np.fromfile() 读取为 np.uint8 格式,再使用 cv2.imdecode() 解码:
import cv2
import numpy as np

filepath = r'G:\工作\测试图片\g3.png'
img = cv2.imdecode(np.fromfile(filepath, dtype=np.uint8), cv2.IMREAD_COLOR)

(2)写图片可以使用 cv2.imencode 方法:
cv2.imencode('.jpg', img)[1].tofile(r'G:\工作\测试图片\g3.jpg')
评论

全部评论(0)

回到顶部