deeplearning-cv-notes icon indicating copy to clipboard operation
deeplearning-cv-notes copied to clipboard

【Python图像处理】遇到过的问题闲记

Open jayboxyz opened this issue 5 years ago • 1 comments

jayboxyz avatar Dec 19 '19 14:12 jayboxyz

使用 Python3 + OpenCV 时,遇到读取/写出中文路径的图片的问题

解决方法:

1、读取 imread

def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1)
    return cv_img

通过numpy读取文件,再编码为cv2的图片对象,避免了OpenCV不支持中文路径的问题。调用时,替换cv2.imread即可:

# img = cv2.imread(curimg_path)
img = cv_imread(curimg_path)

2、保存 imwrite

同样地,图片输出到含有中文的路径也需要使用一个小函数:

def cv_imwrite(img, path):
    suffix = os.path.splitext(path)[-1]
    cv2.imencode(suffix, img)[1].tofile(path)

调用时,替换cv2.imwrite即可:

# cv2.imwrite(path, img)
cv2_imwrite(img, path)

参考:https://heary.cn/posts/OpenCV-%E4%B8%AD%E6%96%87%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98/

jayboxyz avatar Dec 19 '19 14:12 jayboxyz