cv2中imread和imwrite读取和保存图片含中文路径问题解决

  • 读取含有中文路径的图片(imread)

    • 英文路径使用(错误):此时读取时不会报错,img中是空的,在后续的一些操作中才会报错

      img = cv2.imread("含有中文路径的图片.jpg")
      
    • 正确使用

      img = cv2.imdecode(np.fromfile("含有中文路径的图片.jpg",dtype=np.uint8),-1)
      
      • 对应代码中的-1参数:
        • cv2.IMREAD_UNCHANGED(-1): 顾名思义,读入完整图片,包括alpha通道。如果数据不含alpha通道则灰图读成(H, W),彩图读成(H, W, 3)。
        • cv2.IMREAD_GRAYSCALE(0): 读入灰度图片,形状为(H, W)。彩图也读成灰的形状。
        • cv2.IMREAD_COLOR(1): 默认参数, 读入一幅彩色图片,忽略alpha通道, 形状为(H, W, 3)。灰图也读成彩的形状。
  • 保存含有中文路径的图片(imwrite)

    • 英文路径使用(错误

      # img为需要保存的图片
      cv2.imwrite("含有中文路径的图片.jpg", img)
      
    • 正确使用

      # cv2.imencode(保存格式, 保存图片)[1].tofile(保存路径)
      cv2.imencode('.jpg', img)[1].tofile("含有中文路径/xxx.jpg")
      

猜你喜欢

转载自blog.csdn.net/weixin_44912159/article/details/109920202