Python读取中文路径,出现乱码问题解决方案

Python读取中文路径,出现乱码问题解决方案

欢迎学习交流!
邮箱: [email protected]
网站: https://zephyrhours.github.io/

一、问题描述

笔者在使用opencv读取带有中文路径的图片时,发现会出现乱码的情况。具体问题如下:

python 复制代码
# 读取带有中文路径的图片出现错误
import cv2

img_path = r'C:\Users\zephy\Documents\Python\CSDN\测试 图片\图片1.jpg'
img = cv2.imread(img_path, cv2.IMREAD_COLOR)

cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

当读取的文件路径出现中文时,(文件夹名为中文或者文件为中文)出现如下错误:

WARN:[email protected]\] global loadsave.cpp:241 cv::findDecoder imread_('C:\\Users\\zephy\\Documents\\Python\\CSDN\\测试 图片\\图片1.jpg'): can't open/read file: check file path/integrity Traceback (most recent call last): File "C:\\Users\\zephy\\Documents\\Python\\CSDN\\demo.py", line 8, in cv2.imshow("image", img) cv2.error: OpenCV(4.10.0) D:\\a\\opencv-python\\opencv-python\\opencv\\modules\\highgui\\src\\window.cpp:973: error: (-215:Assertion failed) size.width\>0 \&\& size.height\>0 in function 'cv::imshow' ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/93ff372fe558491c8d4ac7c9783f32c7.png) 在定位问题时,将读取图片路径和图片名词更换为全英文后,发现可以正常读取,具体如下:

python 复制代码
# 读取英文路径下的图片,显示正常
import cv2

img_path = r'C:\Users\zephy\Documents\Python\CSDN\caps.bmp'
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

二、问题解决

定位问题后,发现出现上述错误的原因是在中文路径的编解码上,下面是笔者在查找相关文献后找到的解决方法,具体代码如下:

python 复制代码
import cv2
import numpy as np

img_path = r'C:\Users\zephy\Documents\Python\CSDN\测试 图片\图片1.jpg'
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR)  # 替换cv2.imread(img_path, cv2.IMREAD_COLOR)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行代码,可顺利读取带有中文路径或中文名词的图片,问题解决。具体读取图片如下:

相关推荐
(・Д・)ノ15 分钟前
python打卡day22
python
DanB2443 分钟前
Java笔记4
java·开发语言·笔记
achene_ql1 小时前
深入探索 RKNN 模型转换之旅
python·目标检测·rk3588·模型部署·rk3566
Dddle11 小时前
C++:this指针
java·c语言·开发语言·c++
studyer_domi1 小时前
Matlab 234-锂电池充放电仿真
开发语言·matlab
yuanpan1 小时前
.net/C#进程间通信技术方案总结
开发语言·c#·.net
吃面不喝汤661 小时前
破解 Qt QProcess 在 Release 模式下的“卡死”之谜
开发语言·qt
@十八子德月生1 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
jiunian_cn1 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio
martian6652 小时前
信创生态核心技术栈:数据库与中间件
开发语言·中间件·系统架构·系统安全·创业创新