1.方法一
# coding: utf-8
import cv2
def cv_imread(file_path = ""):
file_path_gbk = file_path.encode('gbk') # unicode转gbk,字符串变为字节数组
img_mat = cv2.imread(file_path_gbk.decode()) # 字节数组直接转字符串,不解码
return img_mat
2.方法二:
opencv不接收non-ascii的路径,可能是考虑到跨平台的原因吧,那现在只需要将unicode字符串编码为gbk字节数组,然后把gbk字节数组直接变为字符串,这个字符串就是ascii的路径了。
# coding: utf-8
def cv_imread(file_path):
cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
return cv_img
作者:wangjian
链接:https://www.zhihu.com/question/67157462/answer/270637846
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文提供两种解决非ASCII路径下使用OpenCV读取图片的方法。第一种方法通过将文件路径从Unicode转换为GBK,再进行解码,实现图片读取。第二种方法利用numpy从文件路径中读取数据,通过imdecode函数解码为图片。这两种方法有效解决了OpenCV在处理中文路径时的问题。
1034

被折叠的 条评论
为什么被折叠?



