解决python cv2.imread 读取中文路径的图片返回为None的问题


Posted in Python onJune 02, 2020

使用cv2读取图片时,输出图片形状大小时出现报错“ 'NoneType' object has no attribute shape”,后来排查发现读取图片的返回值image为None, 这就说明图片根本就没有被读取。

下面图片是问题问题解决后,为了更好的展示,写的代码展示,这是正常的因果关系,找错误排查时是从下往上推。

解决python cv2.imread 读取中文路径的图片返回为None的问题

使用PIL读取图像,能够成功读取图片,借此了解图片的大小和格式,代码如下图所示:

解决python cv2.imread 读取中文路径的图片返回为None的问题

cv.imread函数能够成功读取非中文路径的图片,所以就想到是不是中文路径的问题,opencv中opencv不接受non-ascii的路径,解决方法就是先用先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码,如下:

解决python cv2.imread 读取中文路径的图片返回为None的问题

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

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

补充知识:python3.x, cv2.imread()导入图片失败,none

首先在第一次运行时,命令行中错误:

ValueError: embedded null character

发现是因为导入的图片路径中存在\0

python3.x, cv2.imread()导入图片失败,none

1. 路径中无中文名

2. pip list 发现也有opencv-python,(虽然我又重新下了一遍

而这些图片用PS打开的时候,会报错:无法完成请求,因为找到不知名的或无效的JPEG标识符类型

图片是我从网站上爬下来的,改过其后缀名为jpg, 源图真正的后缀名是gif.

所以要重置一些文件的格式,比如用画图重新保存为jpg格式。

这里注意:

后缀是一个标签,表明文件的类型和格式,至于文件到底是不是该格式就另说了。有时候改了后缀名,文件仍能被打开(我遇到的情况),是因为文件内容还有文件头,有些应用程序会根据文件头中的信息来判断文件的格式(比如windows自带的照片查看器)而不是通过后缀名。所以切实有效的方式还是通过格式转换软件来转换格式。

应用python PIL包的Image模块将图片重新转换格式为jpg(彻底转换格式,而不是只改后缀)

(当然如果只需要几张图的话,直接用画图打开另存jpg格式就好了)

img = Image.open(file_path+'/'+files[j]).convert('RGB')
img.save(file_path+'/'+files[j]

注意要有个convert('RGB'),不然报错OSError: cannot write mode P as JPEG

以上这篇解决python cv2.imread 读取中文路径的图片返回为None的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
python制作websocket服务器实例分享
Nov 20 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python字符串拼接六种方法介绍
Dec 18 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
python实现的web监控系统
Apr 27 Python
Python3的进程和线程你了解吗
Mar 16 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 Python
Pandas读取csv时如何设置列名
Jun 02 #Python
python os模块常用的29种方法使用详解
Jun 02 #Python
完美解决pycharm 不显示代码提示问题
Jun 02 #Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
Jun 02 #Python
基于python实现查询ip地址来源
Jun 02 #Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 #Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 #Python
You might like
用PHP创建PDF中文文档
2006/10/09 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
python轻松查到删除自己的微信好友
2016/01/10 Python
python交易记录整合交易类详解
2019/07/03 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
.net笔试题
2014/03/03 面试题
精彩的大学生自我评价
2013/11/17 职场文书
禁毒宣传标语
2014/06/19 职场文书
学校周年庆活动方案
2014/08/22 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
导游词之广州陈家祠
2019/10/21 职场文书