引言
在 Python 3.x 中,由于编码问题,OpenCV 不能读取带有中文路径的图片。在此,笔者收集了一些网上资料,整理了下,可以让 OpenCV 读取中文路径的方法,具体分为:
- 使用 cv2.imdecode 函数
- 使用 matplotlib 读取再转换
- 改变电脑编码环境
方法一:使用 cv2.imdecode 函数读取中文路径图片
import cv2
img = cv2.imdecode(np.fromfile("微信图片.jpg",dtype=np.uint8),-1)
img = cv2.resize(img,dsize=(0, 0),fx=0.5,fy=0.5)
cv2.imshow("Img",img)
cv2.waitKey(0)
方法二:使用 Matplotlib 读取再转换
def matplotlib2opencv(path):
# 读取
img = plt.imread(path)
# 改变通道顺序
img_rgb = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
return img_rgb
if __name__ == '__main__':
img = matplotlib2opencv("微信图片.jpg")
img = cv2.resize(img, dsize=(0, 0), fx=0.5, fy=0.5)
cv2.imshow("Img",img)
cv2.waitKey(0)
方法三:改变系统编码(不推荐)
打开 设置 ->时间和语言 -> 区域 -> 其他时间、日期和区域设置 -> 区域 -> 管理 -> 更改系统区域设置
勾上 Beta 版本。
但是这种方法可能会导致别的编码乱码,因此不建议使用。
备注
博主本人代做 Python 深度学习、目标检测方面代码及咨询,有合作者、业务需求者可联络QQ:1361114716,或者扫描二维码,添加好友: