解决方法:opencv读取中文路径图像报错 | AttributeError: ‘NoneType‘ object has no attribute ‘astype‘

Posted 叶庭云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决方法:opencv读取中文路径图像报错 | AttributeError: ‘NoneType‘ object has no attribute ‘astype‘相关的知识,希望对你有一定的参考价值。


在使用开源项目 blind_watermark 给图像添加数字盲水印时,传入图像路径中文时,会出现以上报错。分析它的源码:

self.img = cv2.imread(filename).astype(np.float32)

它用的 opencv 读取图像和转换类型。读取水印图像也是类似的方法。


解决方法:用 numpy 读取处理图片,再对 numpy 处理后的图片数据用 cv2.imdecode 方法进行转码,转化为图片对象。

# self.img = cv2.imread(filename).astype(np.float32)
# 用numpy读取处理图片  再对numpy的读取的图片进行转码,转化为图片对象
self.img = cv2.imdecode(np.fromfile(filename, dtype=np.uint8), -1).astype(np.float32)
# 读入图片格式的水印,并转为一维 bit 格式
# self.wm = cv2.imread(filename)[:, :, 0]
self.wm = cv2.imdecode(np.fromfile(filename, dtype=np.uint8), -1)[:, :, 0]

将原来读取图像的代码注释掉,用新的方法重写后保存,然后再读取图像加数字盲水印,不再有报错。

print(":".join(["CSDN叶庭云", "https://yetingyun.blog.csdn.net/"]))

以上是关于解决方法:opencv读取中文路径图像报错 | AttributeError: ‘NoneType‘ object has no attribute ‘astype‘的主要内容,如果未能解决你的问题,请参考以下文章

解决python中OpenCV库读取图像函数不支持中文路径问题

OpenCV Python无法从路径中有空格的外部硬盘读取图像

opencv读取中文路径报错的问题

Python3 Opencv 读取图片是中文路径乱码

Python3 Opencv 读取图片是中文路径乱码

Python3 Opencv 读取图片是中文路径乱码