問題背景:
通過cv2.imread
讀取.png
格式的數據時發生如下報錯:
AttributeError: 'NoneType' object has no attribute 'shape'
分析:
在Python
中,NoneType
是一個類型,如同int
、float
一樣。如:
>>> a = None
>>> type(a)
<class 'NoneType'>
>>> a = 1
>>> type(a)
<class 'int'>
注:Nonetype
類型不支持任何運算也沒有內建方法
解決方法:
本案例中通過cv2.imread
讀取.png
格式的數據時,使用了img1 = cv2.imread('data/Dubai_11122012.png', 0)
,即路徑使用了相對路徑,應改成絕對路徑。當再次實驗時因爲移動了文件夾再次導致同樣的報錯,修改絕對路徑即可。
總結:發生AttributeError: 'NoneType' object has no attribute 'XXX'
大概可能是因爲沒有讀到數據,導致變量爲空爲NoneType
類型,且Nonetype
類型不支持任何運算也沒有內建方法,故報錯。