2017-09-22 84 views
-1

我想不通,爲什麼它不起作用。它應該返回數組(32,32,3),但出於某種原因我得到了NoneType值。路徑是正確的。爲什麼我在使用cv2庫的python中獲得「NoneType」?

下面是代碼:

path = '/Users/abylikhsanov1/AI/carnd/term1/CarND-Traffic-Sign-Classifier- 
Project/load_images/' 
image = {'8': cv2.imread(path+'one.jpg'), 
    '1': cv2.imread(path+'two.jpg'), 
    '33': cv2.imread(path+'three.jpg'), 
    '35': cv2.imread(path+'four.jpg'), 
    '17': cv2.imread(path+'five.jpg')} 

print(image['8'].shape) 

我收到此錯誤: enter image description here

+2

因爲該文件不存在。在CV文檔中,它說:「即使圖像路徑錯誤,它也不會拋出任何錯誤,但是打印img會給你無」。 –

+0

試試看這個問題https://stackoverflow.com/questions/17949268/cv2-imread-always-returns-nonetype,也許會幫助 – lub0v

+0

@WillemVanOnsem但它確實存在,這是問題 –

回答

2

嗯,這隻能是事實的結果是cv2.imread回報None。如果我們閱讀documentation of OpenCV,我們看到:

Warning: Even if the image path is wrong, it won't throw any error, but print img will give you None.

因此,這意味着該文件路徑:

'/Users/abylikhsanov1/AI/carnd/term1/CarND-Traffic-Sign-Classifier-Project/load_images/one.jpg' 

不是有效的文件

如果在終端中寫入ls '/Users/abylikhsanov1/AI/carnd/term1/CarND-Traffic-Sign-Classifier-Project/load_images/one.jpg',它可能會報告該文件不存在。

+0

不幸的是,它存在。我甚至使用終端進行檢查。我已經在同一個文件路徑中加載了其他圖片,但是使用了pickle。所以情況並非如此 –

+0

@AbylIkhsanov:如果在函數調用中添加'0'作爲第二個參數,那麼'imread(filepath,0)'? –

+0

另外,我不認爲你可以''''的JPG文件。可能是因爲權限 –

相關問題