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

代码的基本样子是:

 import os
import cv2
import numpy as np def text_to_pic(file):
f = open(file)
all_features = f.read().strip().split(' ')
all_features = np.array(all_features)
all_features = all_features.astype(np.float)
all_features = all_features.reshape((160 * 160, 3))
all_features = all_features[:, [2, 1, 0]]
all_features = all_features.reshape((160, 160, 3))
file_save = file.replace('.txt', '.jpg')
cv2.imwrite(file_save, all_features) if __name__ == '__main__':
for root, dirs, files in os.walk('C:\\Users\\Administrator\\Desktop\\image', topdown=False):
for name in files:
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)

问题解决

python3中OpenCV imwrite保存中文路径文件的更多相关文章

  1. qt: 打不开png图像以及opencv加载中文路径问题;

    经过亲测, QT(版本: 5.9.4)提供的QImageReader或者函数load在加载本地png图像时,均会提示失败, 按照网上的方法,将Qt plugins下的imageformats 拷贝到e ...

  2. php中fopen不能创建中文文件名文件的问题

    之前网页的chartset用的是utf-8,文件也用utf-8,然后用fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱 码! 查看了很多文档试了不少方法都解决不了,本来想着用别的方法 ...

  3. Qt中QFtp获取带有中文的文件名称出现乱码的解决方法(执行操作前就转换编码)

    今天研究了一下QFtp这个类,发现访问得到的文件名称中一旦出现中文,不管怎么转换编码格式,最终显示出来的始终都是乱码.由于编码错误,我写了两个函数用于互相转换编码. 一个是由正常编码转为QFTP上所谓 ...

  4. python:pycharm中使用pandas读取中文路径报错问题的解决方案

    假如你的文件路径名是这样的,例如:test.csv 只要它是小文件(大文件采用分块读取,后续会补上文件分块读取的相关博客),你的内存扛得住,那就直接 import pandas as pd test ...

  5. 论 Python Opencv 中文路径及中文文件名图像文件读取的两种方式

    python 2中对于中文字符的处理可谓是诟病已久,虽然python 3 使用统一编码解决了中文字符串的问题,但在使用opencv中imread函数读取中文路径图像文件时仍会报错. 1) 借助nump ...

  6. opencv_python使用cv2.imread()读取中文路径报错问题(转)

    原地址:https://blog.csdn.net/liuqinshouss/article/details/78696032 1 说明 本篇中使用的opencv版本为3.3,python使用的版本为 ...

  7. 剖析ifstream打开含中文路径名文件失败的原因

    http://blog.csdn.net/yukin_xue/article/details/7543423 最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下, ...

  8. MyEclipse右键new菜单项的设置 及 Eclipse中各种文件不能保存中文的问题

    有时候,myeclipse右键new的时候经常出现一些ejb等文件你懂的,很是恶心~~ Window --> Customize Perspective --> Submenus --&g ...

  9. Python3.4 获取百度网页源码并保存在本地文件中

    最近学习python 版本 3.4 抓取网页源码并且保存在本地文件中 import urllib.request url='http://www.baidu.com' #上面的url一定要写明确,如果 ...

随机推荐

  1. java:Mybatis框架3(二级缓存,延时和积极加载,SSI(Ibatis)集成,SSM集成)

    1.二级缓存: 需要导入二级缓存jar包: mybatis03: ehcache.xml: <ehcache xmlns:xsi="http://www.w3.org/2001/XML ...

  2. java:struts框架4(Ajax)

    1.Ajax: 先导入jar包: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!D ...

  3. 简单通讯聊天 群聊功能 Windows下的客户端 Linux下的epoll服务器

    1 服务器代码  Linux eclipse C++ //======================================================================= ...

  4. Day02:对象和类(下)

    构造方法 什么是构造方法 在类实例化对象时运行的一种特殊的方法 为什么需要构造方法 构造方法适合为对象的属性赋初值 编写构造方法 public 类名(){ //方法体 } 构造方法不写返回值 构造方法 ...

  5. 11.8 Springcloud项目简介

    各位领导好,我从毕业后做了两年Java开发工程师,刚开始都是一些SSM框架的项目,但是由于技术不断更新,微服项目成为必然的趋势,大约在做了1年的SSM框架,之后开始接触微服项目,前后经理过Dubbo和 ...

  6. 《Python编程从0到1》笔记3——欧几里得算法

    本节以欧几里得算法(这是人类历史上最早记载的算法)为示例,向读者展示注释.文档字符串(docstring).变量.循环.递归.缩进以及函数定义等Python语法要素.    欧几里得算法:“在数学中, ...

  7. spring+redis实例(二)

    这一篇redis实例是基于序列化储存-(写入对象,读取对象) 在spring+redis(一)中我们介绍了在spring中怎么去操作储存redis,基于string的储存,今天我们介绍一下redis基 ...

  8. 洛谷 P3388 割点(割顶) 题解

    题面:     割点性质:     节点 u 如果是割点,当且仅当存在 u 的一个子树,子树中没有连向 u 的祖先的边(返祖边).     换句话说,如果对于一个点u,它的子节点是v,如果low[v] ...

  9. Django查询数据库返回字典dict数据

    个人观点: 个人认为,在Django项目中, 开发团队为了让使用该框架的用户都使用自带的序列化功能,从而让框架中的SQL返回值很不直观,对于直接使用SQL语句的用户很犯难. 解决: from djan ...

  10. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...