摘要: opencv的图片读取的常用函数是imread(),但该函数无法带有中文名称或者存在中文路径的图片。
一、imdecode()
可以使用imdecode()函数来解决这个问题:
import cv2
import numpy as np
img_path = 'images/图片.jpg'
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)
cv2.imshow('image', img)
cv2.waitKey(0)
二、imencode()
同样地,opencv使用imwrite()函数来保存图片,用该函数保存带有中文的图片时会存在如下情况:
带有中文路径:程序无报错,但无法保存图片
带有中文名称:程序无报错,能保存图片,但是图片名称出现乱码
如果想避免以上问题,可以使用imencode()函数来保存带有中文的图片:
import cv2
import numpy as np
img_path = 'images/图片.jpg'
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)
cv2.imencode('.jpg', img)[1].tofile('图片/1.jpg')