2017-06-01 52 views
1

我想將圖像元數據(高度,寬度,顏色通道等)存儲在字典中。有多個圖像,所以我想用Python操作系統遍歷圖像文件夾,併爲每個圖像創建一個字典,包括圖像元數據。這是一些不好的代碼,可以說明我的意思。如何將圖像數據存儲在字典中

PATH_TO_IMAGES = 'images/data' 
print(os.listdir(PATH_TO_IMAGES)) 

list_of_images = [os.listdir(PATH_TO_IMAGES)] 
for im in list_of_images: 
    imdict = {} 
    imdict['height'] = ??? 
    imdict['width'] = ??? 
    imdict['channels'] = ??? 
    imdict['name'] = ??? 

我也很想知道哪些軟件包(PIL,matplotlib,?)適合這個。謝謝。

+0

我不完全確定你要綁定什麼。你想要一個包含所有圖像所有數據的字典嗎?或每個圖像的新字典?無論如何,我認爲你有一些錯誤。每個循環會覆蓋您的「imdict = {}」。打印語句將只打印最後一張圖像。這是你的意圖嗎? – 16num

+0

我想要一個字典爲每個圖像。我知道這些錯誤,我希望打印語句打印每個字典。 –

回答

0

我不確定'渠道'是什麼,但是這應該爲您提供所需的其他信息。看看PIL。看起來你也可以使用枕頭。我從來沒有使用它,但它聲稱易於使用。

import os 
from PIL import Image 

PATH_TO_IMAGES = 'images/' 
image_paths = os.listdir(PATH_TO_IMAGES) 
print(image_paths) 

list_of_image_data = [] 
for im in image_paths: 
    image = Image.open(PATH_TO_IMAGES + im) 
    width, height = image.size 
    imdict = { 
     'name': im, 
     'height': height, 
     'width': width, 
    } 
    list_of_image_data.append(imdict) 

print(list_of_image_data) 
+0

給我一個錯誤,'image = Image.open(im)'由於某種原因不起作用。 –

+0

你是對的。我修復了這個錯誤。問題是需要在打開之前將路徑附加到圖像名稱。 –

相關問題