opencv_python使用cv2.imread()读取中文路径报错问题
来源:互联网 发布:端口聚合有什么作用 编辑:程序博客网 时间:2024/05/01 15:36
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.解决办法
但是可惜的是,小白我并没有解决办法,于是又问度娘,寻找python3中opencv读取中文名称的解决办法。
最后在一个知乎的问答中找到了答案:
链接如下: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')
阅读全文
0 0
- opencv_python使用cv2.imread()读取中文路径报错问题
- cv2.imread(path)读取图片时,中文路径引起错误
- python3下 解决cv2读取中文路径问题
- opencv2 和 opencv3冲突问题 im = cv2.imread(cur_path + '/../demo/' + im_name, cv2.IMREAD_COLOR | cv2.IMREA
- python3下使用cv2.imwrite存储带有中文路径图片
- Qt OpenCV imread 中文路径
- imread读取图像出现“未定义标识符”报错的解决方法
- python cv2.imread()、cv2.imshow()、cv2.imwrite()
- 解决方法——使用opencv_python读入视频,结果视频文件打不开——cv2.VideoWriter()
- caffe学习笔记(13):python cv2.imread()读取图片和matlab读取图像的区别
- skimage.io.imread与cv2.imread
- OpenCV|Qt OpenCV imread 中文路径
- 走进Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()
- cv2.imread('face.png',0) cv2.namedWindow('image', cv2.WINDOW_NORMAL)
- vs2013-opencv2.4.10-imread()读取图片问题
- python2.7 import cv2 报错no module named cv2
- 使用opencv_python进行视频分析遇到的bgsegm问题
- OpenCV: 图片读取函数imread的文件路径写法
- 老徐小程序之小程序怎么选?
- im2col算法
- 数据结构实验之图论八:欧拉回路
- springmvc+ztree v3实现类似表单回显功能
- SpringBoot +Solr
- opencv_python使用cv2.imread()读取中文路径报错问题
- 操作系统之经典进程同步问题
- Adapter,Fragment向所属的activity中传值
- OS 使用动态优先权的进程调度
- hadoop开发:HDFS上传文件失败原因
- maven依赖传递和冲突解决
- Android使用第三方字体
- 想要创建自己的个性符号库?很简单看这里!
- 二叉树的定义与基本操作