《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
问题描述
1.使用opencv中的cv2.imread读取中文名称图片报错:
[ WARN:0@0.028] global loadsave.cpp:248 cv::findDecoder imread_(‘邓紫棋.jpg’): can’t open/read file: check file path/integrity
Traceback (most recent call last):
File “D:\MyTest\TestFiles\test1.py”, line 6, in
cv2.imshow(‘test’,img)
cv2.error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:971: error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow’
运行代码如下:
# coding:utf-8
import cv2
img = cv2.imread('邓紫棋.jpg')
cv2.imshow('test',img)
cv2.waitKey(0)
2.使用opencv中的cv2.imwrite无法保存中文名称图片
cv2.imwrite('邓紫棋2.jpg',img) # 运行后,没有显示保存文件,也没有报错
运行代码后,没有保存图片文件,也没有报错。
解决办法:使用cv2.imdecode与cv2.imencode
读取中文名图片:cv2.imdecode
使用cv2.imdecode进行图片读取,代码如下:
# coding:utf-8
import cv2
import numpy as np
# img = cv2.imread('邓紫棋.jpg')
img = cv2.imdecode(np.fromfile('邓紫棋.jpg', dtype=np.uint8), cv2.IMREAD_COLOR)
cv2.imshow('test',img)
cv2.waitKey(0)
运行后可以正常显示:
保存中文名图片:cv2.imencode
# coding:utf-8
import cv2
import numpy as np
# img = cv2.imread('邓紫棋.jpg')
img = cv2.imdecode(np.fromfile('邓紫棋.jpg', dtype=np.uint8), cv2.IMREAD_COLOR)
cv2.imencode('.jpg',img)[1].tofile('邓紫棋2.jpg')
其中:'.jpg’表示把当前图片img按照jpg格式编码。
运行后可以正常保存。
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!