Python:cv2.imread读入图片后返回NoneType的部分原因与解决方法

本质

本人在从新数据集载入图片时,出现了NoneType的情况。本质是图片没有读取成功,导致变量内部是空的,处于NoneType的数据类型。

在此总结一下,可能导致此类情况的原因。

1.图片名称错误

在读取数据集时,若没有注意到数据名称的一些细节,就容易在套用代码时出错。

WM811K_135_Scratch_Training_1.png
WM811K_135_Scratch_Training.png

建议先在数据集中进行搜索,找到数据集中的命名差别并进行修改。

 2.地址发生改变

当我们更换数据集时,特别是将代码所在文件夹的数据集换成文件夹外的代码时,容易出现这类问题。

# img_path = "gray224/WM811K_107436_Scratch_Training_.png"
img_path = 'E:/*************************/Scratch/WM811K_101930_Scratch_Training_71.png'
img = cv2.imread(img_path,0)
num = 0

 这里建议,及时确认数据集的位置,平时养成数据集归类的好习惯。如果实在嫌麻烦,可以考虑数据集与代码单独存储,并统一使用绝对路径。

 3.图像后缀丢失

如今双击复制图像名称时,多默认省略后缀。如果框选过快,容易遗漏。

同时,部分图片显示时,会默认省略后缀。而,若图像由于某些原因在名称中加入了后缀,也很容易导致此类情况,且较难发现。

 希望本文对各位读者有用,如有补充与指正,欢迎留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值