opencv_python使用cv2.imread()读取中文路径报错问题(转)
原地址:https://blog.csdn.net/liuqinshouss/article/details/78696032
1 说明
本篇中使用的opencv版本为3.3,python使用的版本为3.6。
2.问题描述
本人小白一枚,由于毕业论文做图像识别方面的内容,所以最近才开始学习python,老师指导我用opencv做图片去噪处理,所以最近才知道opencv是干嘛用的,opencv才安装好,想尝试一下简单的使用opencv读取、显示和存储一个图片。然而一开始就给了我一个下马威。
开始代码如下,只涉及到图片的读取和显示:
# -*- coding: utf-8 -*-import cv2if __name__=='__main__':path='E:/毕业设计/images/百合1.jpg'img=cv2.imread(path,1)cv2.namedWindow(image,cv2.WINDOW_AUTOSIZE)cv2.imshow(image,img)k=cv2.waitKey(0)
运行后报了这个错误:
- cv2.imshow('image',img)
- cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: error: (-215) size.width>0 && size.height>0 in function cv::imshow
百度了一下:原因是因为文件路径错误,未读取到图片。但是我反复确认我的图片路径没有错误,所以想到会不会是中文的字符编码问题导致读取不到图片,于是我在D盘下放了一张英文命名的图片,就修改了代码的path改为‘D:/ Hydrangeas.jpg’,再次运行上述代码,结果如下:
成功读取并显示,则表明我的猜想是正确的,是因为路径的中文编码导致图片读取不成功。
3.解决办法
最后在一个知乎的问答中找到了答案:
链接如下:https://www.zhihu.com/question/67157462/answer/251754530
我尝试了,果然能成功读取中文路径与中文名称的图片,事实证明该方法是正确的。然而这位答主的回答居然没有赞,我果断的给她点了个赞,不知为何题主竟然都没赞。
然后又在另一个知乎问答下发现了另一个,包括opencv读取和存储中文名称和路径的方法:
附上链接:https://www.zhihu.com/question/47184512
尝试后,果然都是对的,感谢知乎,感谢两位大佬!
附上我修改后的代码:
# -*- coding: utf-8 -*-import cv2import numpy as np## 读取图像,解决imread不能读取中文路径的问题def cv_imread(filePath):cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)## imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化##cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)return cv_imgif __name__=='__main__':path='E:/images/百合/百合1.jpg'img=cv_imread(path)cv2.namedWindow('lena',cv2.WINDOW_AUTOSIZE)cv2.imshow('lena',img)k=cv2.waitKey(0)##这样是保存到了和当前运行目录下cv2.imencode('.jpg', img)[1].tofile('百合.jpg')
转载于:https://www.cnblogs.com/byteHuang/p/9597439.html
opencv_python使用cv2.imread()读取中文路径报错问题(转)相关推荐
- opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径 定义函数: cv2_imread(path)代替cv2.imread() cv2_im ...
- cv2.imread读取图像结果none_python cv2.imread 读取中文路径的图片返回为None的问题
此篇文章首发于我的csdn博客,见原文链接. 使用cv2读取图片是常见的事情,但如果,输出图片形状大小时出现报错" 'NoneType' object has no attribute sh ...
- Pandas读取中文文本文件报错:python ‘utf-8‘ codec can‘t decode byte 0xe3 in position 0: unexpected end of data
近日用pandas的read_csv读取中文文本文件时报错:python 'utf-8' codec can't decode byte 0xe3 in position 0: unexpected ...
- python读取中文文件报错-Python3 解决读取中文文件txt编码的问题
问题描述 尝试用Python写一个Wordcloud的时候,出现了编码问题. 照着网上某些博客的说法添添改改后,结果是变成了"UnicodeDecodeError: "utf-8' ...
- c++上传oss中文路径报错_C# 从Oss对象存储器上下载文件到本地打包下载代码
[HttpGet][Route("downloadimgszip")]public void downloadimages(string goodsid){//获取所有图片路径Li ...
- urlopen中文路径报错from urllib.request import urlopen from urllib.parse import quote from bs4 import Beaut
描述 当urlopen中出现中文路径是报错.'ascii' codec can't encode characters 解决办法 将中文使用quote包住 from urllib.request im ...
- 电脑微信双开 中文路径报错解决
参考网上文章 自己操作了一遍 流程如下 开始之前先关闭电脑微信 首先说下怎么微信双开 找到微信的桌面快捷方式 右键属性 复制上述路径 新建文本文档 如下编写 start F:\软件\微信\安装目录\W ...
- python打印汉字报错_python中文输出报错解决方案(实例教程)
对于刚刚开始接触python这门语言的人来说,可能会对于如何使用这门语言来进行编程会存在有一定的疑惑.如何使用中文来进行程序的编写,会不会与英文的编写有不一样的地方?今天我们就来看一下在python中 ...
- OpenCV——cv2.imread()无法读取中文路径的文件解决方案
解决方案 方法一: ## 读取图像,解决imread不能读取中文路径的问题 def cv_imread(filePath):# 核心就是下面这句,一般直接用这句就行,直接把图片转为mat数据cv_im ...
最新文章
- [BUUCTF]PWN——ciscn_2019_es_2(栈劫持)
- ksnapshot运行look up error undefined symbol错误解决方案
- spark restful_使用Spark构建简单的RESTful API
- Android工程开发笔记一
- python读取linux内存_使用python获取CPU和内存信息(linux系统)
- JavaScript-参数
- delphi 身份证号码相关处理单元
- 机器学习之有监督学习,无监督学习,半监督学习
- win10设置HTML桌面背景,win10系统分屏设置不同壁纸教程
- 一个优秀程序员可抵五个普通程序员!
- 关闭计算机安全模式,怎么关闭安全模式,bios安全启动模式
- 【激发兴趣】台球小游戏基础版
- 论文阅读:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
- 【JZOJ 4598】准备食物
- Linux操作系统搭建srs服务器
- ue4 android log,UE4+Log日志
- 孔庆东 -- 一个DEAD-LEFTIST_拔剑-浆糊的传说_新浪博客
- 基于Web的网络在线考试系统
- 虚拟乐器综合音源-Vir2 Instruments VI.ONE Kontakt
- 苏州电脑数据恢复中心怎么样