python3中OpenCV imwrite保存中文路径文件

原先一段将特征值保存为图片的代码,这部分学生的电脑上运行没有生成图片

代码的基本样子是:

 1 import os
 2 import cv2
 3 import numpy as np
 4 
 5 
 6 def text_to_pic(file):
 7     f = open(file)
 8     all_features = f.read().strip().split(' ')
 9     all_features = np.array(all_features)
10     all_features = all_features.astype(np.float)
11     all_features = all_features.reshape((160 * 160, 3))
12     all_features = all_features[:, [2, 1, 0]]
13     all_features = all_features.reshape((160, 160, 3))
14     file_save = file.replace('.txt', '.jpg')
15     cv2.imwrite(file_save, all_features)
16 
17 
18 if __name__ == '__main__':
19     for root, dirs, files in os.walk('C:\\Users\\Administrator\\Desktop\\image', topdown=False):
20         for name in files:
21             text_to_pic(os.path.join(root, name))

 

 

学生将自己的代码传过来之后,只修改了19行的路径,完全没有问题,说明代码基本功能没有问题,区别就是环境了

然后远程学生的设备,发现这D盘下新建一个test文件夹,程序也是正常运行的,这说明基本环境也没有问题

然后发现学生是将原先的特征文本放在桌面,而用户名为xxx(学生本人姓名),然后就怀疑可能是由于路径含有中文

使用cv2.imshow查看了一下,能正常显示图片,说明图片是正常读取了

然后尝试了几种修改编码的方法,发现都不起作用

最后以"cv2.imwrite 中文"为关键字搜索,发现python3的OpenCV保存图片,如果要存中文路径,需要用imencode tofile方法操作

代码将15句改为

cv2.imencode('.jpg', all_features)[1].tofile(file_save)

问题解决

转载于:https://www.cnblogs.com/punkrocker/p/10927847.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值