解决cv2.imread读取带有中文路径或名称的图片返回None问题

当尝试使用cv2.imread读取带有中文名称的图片时,返回值为None。原因是opencv不支持非ASCII路径。解决方法是先使用np.fromfile将图片以np.uint8格式读取,然后通过cv2.imdecode进行解码。具体代码为:image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), -1)。这样可以成功读取中文路径的图片。" 78196659,1467541,iOS逆向基础:汇编、指令集与调试工具,"['ios', '系统架构', '逆向工程', '汇编', '调试工具']

最近写代码发现使用cv2.imread读取图像时,总是结果为None,使用Image.open就没有问题,我的图片名称是中文命名的。查阅后得知 opencv不接受non-ascii的路径,解决方法就是先用先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码,如下:

image = cv2.imdecode(np.fromfile(image_path,dtype=np.uint8),-1)

np.fromfile(filename, dtype)是以dtype形式读取文件

cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像。

改成这样之后,就可以顺利读取图像了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值