问题: 使用cv2.imread
读取含有中文路径的图片时,返回None
。
原因: opencv不接受non-ascii的路径。
解决方法: 先用np.fromfile()
读取为np.uint8
格式,再使用cv2.imdecode()
解码。
cv2.imdecode(buf, flags) # buf - Input array or vector of bytes. # flags - The same flags as in cv2.imread(). # - >0 Return a 3-channel color image. # - =0 Return a grayscale image. # - <0 Return the loaded image as is (with alpha channel).
例子如下:
# 读取图像,解决imread不能读取中文路径的问题 def img_read(file_path): image = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), 0) return image