迭代文件夹中的图像炸毁内存

时间:2017-01-11 22:00:15

标签: python ndimage

我正在使用以下代码迭代文件夹中的图像并将其保存在文件名为键的字典中,但即使文件夹中的图像很容易适合内存,它也会快速耗尽内存需求。为什么会这样,我该如何解决?

def make_image_dict(folders):
  image_dict={}
  for folder in folders:
    files = os.listdir(folder)
    print ("Loading images in folder:", folder)
    for file in files:
      try:
        image=ndimage.imread(folder+'/'+file)
        if file.endswith('.png'):
          image_name = str(file)[:-4]
          image_dict[image_name]=image
      except IOError as e:
        print (e)
  return image_dict

1 个答案:

答案 0 :(得分:0)

您不希望将实际文件存储到内存中,只存储文件名。这样,您可以稍后在应用程序中逐个加载和卸载文件。加载那么多数据有点毫无意义。

试试这个

import os

pictures = []
files = os.listdir('images')
for file in files:
    if (file.endswith(".png")):
        pictures.append(file)

....

for picture in pictures:
    workingPicture = read(picture)
    analyze(picture)
    inspect(picture)
    ...