系统默认编码不是UTF-8,在某些情况下需要使用不同的编码方式。使用以下代码来读取包含中文文件名的图像文件:
import cv2
import numpy as np
filename = '中文文件名.jpg'
img = cv2.imdecode(np.fromfile(filename, dtype=np.uint8), cv2.IMREAD_COLOR)
该方法可以通过从文件中使用np.fromfile函数来读取图像文件,并指定其类型为np.uint8。然后使用cv2.imdecode函数将图像解码为opencv格式。 如果文件名包含非ASCII字符,请确保文件名是正确的编码方式,否则无论如何都无法正确解析。例如,如果文件名是GB2312编码,请使用以下代码:
filename = '中文文件名.jpg'
filename = filename.decode('gb2312')
img = cv2.imread(filename)
需要注意的是,这种方法只适用于读取本地文件,无法读取远程文件。