本质
本人在从新数据集载入图片时,出现了NoneType的情况。本质是图片没有读取成功,导致变量内部是空的,处于NoneType的数据类型。
在此总结一下,可能导致此类情况的原因。
1.图片名称错误
在读取数据集时,若没有注意到数据名称的一些细节,就容易在套用代码时出错。


建议先在数据集中进行搜索,找到数据集中的命名差别并进行修改。
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.图像后缀丢失
如今双击复制图像名称时,多默认省略后缀。如果框选过快,容易遗漏。
同时,部分图片显示时,会默认省略后缀。而,若图像由于某些原因在名称中加入了后缀,也很容易导致此类情况,且较难发现。
希望本文对各位读者有用,如有补充与指正,欢迎留言。