解决python中OpenCV库读取图像函数不支持中文路径问题
问题描述:
在使用cv2.imread()函数进行读取图片的时候发现读取失败,首先需要确保路径有没有写错(如:\\需要写成\\\\),如果路径没有写错,但是报下面的错误。则表明是中文编码的问题。如:error: (-215:Assertion failed) size.width>0 && size.height>0 in function \'cv::imshow\'
解决方法:
在cv2中有另外一个函数可以帮助我们解决中文的问题。下面给出解决的参考程序:
import cv2 # 导入cv2
import numpy as np # 需要使用到里面的函数
def my_cv_imread(filepath):
# 使用imdecode函数进行读取
img = cv2.imdecode(np.fromfile(filepath,dtype=np.uint8),-1)
return img
# 这里路径需要注意:
# 1、如果使用的是Windows的\\做为分隔,则需要使用\\\\来进行区分,因为单个\\表示转义字符
# 2、如果不想使用\\\\可以在原来的路径前面加上r进行标识
filepath = \'D:/code/Python/图像/问题解决/解决中文路径问题/5.jpg\'
img = my_cv_imread(filepath) # 获取读取的图像
cv2.imshow(\'image\', img) # 显示图像
cv2.waitKey(0)
注:在上面的路径问题上,也要注意\\和/的区别,在注释当中已经解析了。这里如果处理不当,同样会造成读取失败的情况。