2017-01-11 39 views
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 
+1

PNG-イメージしてみてくださいは、メモリに圧縮し、圧縮されていないです。あなたはこれを考慮しましたか? – Daniel

答えて

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) 
    ...