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

実際のファイルをメモリに保存するのではなく、ファイル名だけを保存します。そうすれば、後でアプリケーションでファイルを 1 つずつロードおよびアンロードできます。それだけのデータをロードするのはちょっと無意味です。

これを試して

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 に答える