0

我正在使用以下代码迭代文件夹中的图像并将它们保存在字典中,并以文件名作为键,但即使文件夹中的图像应该很容易放入内存,它也会迅速增加内存需求。为什么会这样,我该如何解决?

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
4

1 回答 1

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)
    ...
于 2017-01-11T22:14:17.313 回答