OpenCV读取中文路径图片

01、引言

在 Python 3.x 中,由于编码问题,OpenCV 不能读取带有中文路径的图片。在此,笔者收集了一些网上资料,整理了下,可以让 OpenCV 读取中文路径的方法,具体分为:

  • 使用 cv2.imdecode 函数
  • 使用 matplotlib 读取再转换
  • 改变电脑编码环境

02、使用 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)

OpenCV读取中文路径图片_第1张图片

03、使用 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)

OpenCV读取中文路径图片_第2张图片

03、改变系统编码(不推荐)

打开 设置 ->时间和语言 -> 区域 -> 其他时间、日期和区域设置 -> 区域 -> 管理 -> 更改系统区域设置

勾上 Beta 版本。

但是这种方法可能会导致别的编码乱码,因此不建议使用。
OpenCV读取中文路径图片_第3张图片
OpenCV读取中文路径图片_第4张图片
OpenCV读取中文路径图片_第5张图片

备注

博主本人代做 Python 深度学习、目标检测方面代码及咨询,有合作者、业务需求者可联络QQ:1361114716,或者扫描二维码,添加好友:
OpenCV读取中文路径图片_第6张图片

你可能感兴趣的:(Opencv高阶操作,opencv,计算机视觉,python)