最近写代码发现使用cv2.imread读取图像时,总是结果为None,使用Image.open就没有问题,我的图片名称是中文命名的。查阅后得知 opencv不接受non-ascii的路径,解决方法就是先用先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码,如下:
image = cv2.imdecode(np.fromfile(image_path,dtype=np.uint8),-1)
np.fromfile(filename, dtype)是以dtype形式读取文件
cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像。
改成这样之后,就可以顺利读取图像了。

当尝试使用cv2.imread读取带有中文名称的图片时,返回值为None。原因是opencv不支持非ASCII路径。解决方法是先使用np.fromfile将图片以np.uint8格式读取,然后通过cv2.imdecode进行解码。具体代码为:image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), -1)。这样可以成功读取中文路径的图片。"
78196659,1467541,iOS逆向基础:汇编、指令集与调试工具,"['ios', '系统架构', '逆向工程', '汇编', '调试工具']

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



