python 2中对于中文字符的处理可谓是诟病已久,虽然python 3 使用统一编码解决了中文字符串的问题,但在使用opencv中imread函数读取中文路径图像文件时仍会报错。
1) 借助numpy
此时可借助于numpy 先将文件数据读取出来,然后使用opencv中imdecode函数将其解码成图像数据。此方法对python 2 和3均使用。
import numpy as np
import cv2
fileData = np.fromfile('中文路径及名称.jpg', dtype=np.uint8)
img = cv2.decode(fileData, -1)
2) 对路径使用gbk编码
import cv2
imgName = u'中文路径及名称.jpg'.encode('gbk')
img = cv2.decode(imgName, -1)