2017-06-01 90 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

你是对的。我修复了这个错误。问题是需要在打开之前将路径附加到图像名称。 –