前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决方法:opencv读取中文路径图像报错 | AttributeError: ‘NoneType‘ object has no attribute ‘astype‘

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

作者头像
叶庭云
发布2022-05-09 09:19:35
8630
发布2022-05-09 09:19:35
举报
文章被收录于专栏:Python进阶之路

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

代码语言:javascript
复制
self.img = cv2.imread(filename).astype(np.float32)

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

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

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

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

代码语言:javascript
复制
print(":".join(["CSDN叶庭云", "https://yetingyun.blog.csdn.net/"]))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档