kerasで画像判定に関する学習を行なっています。
imagedatageneratorを使ってディレクトリ内の画像に対して一括で処理を行いたいと考えております。
現状は増やしたい画像をimageに入れ、水増し後に元のディレクトリに戻す作業をしています。
imageに画像を入れなくともtrainに入っている全ディレクトリ内の.pngに対して水増しを行いたいのですがどのように書き加えたらいいのか教えてください。
train
/dirA
/A.png
B.png
C.png
/dirB
/D.png
E.png
F.png
/dirC
/G.png
H.png
Y.png
といったディレクトリ構成になっております
python
1import os 2import glob 3import numpy as np 4from keras.preprocessing.image import ImageDataGenerator, load_img, img_to_array, array_to_img 5 6def draw_images(generator, x, dir_name, index): 7 save_name = 'extened' + str(index) 8 g = generator.flow(x, batch_size=1, save_to_dir=output_dir, save_prefix=save_name, save_format='png') 9 10 for i in range(10):##############拡張枚数################### 11 bach = g.next() 12 13input_dir = 'dir/a' 14if __name__ == '__main__': 15 16 ##############出力先################### 17 output_dir = input_dir 18 19 ##############入力ディレクトリ################### 20 images = glob.glob("/Users/a/Desktop/image/*.png") 21 22 23 ##############オーギュメンテーションの設定################### 24 generator = ImageDataGenerator( 25 #zoom_range=0.8, 26 ) 27 28 29 # 読み込んだ画像を順に拡張 30 for i in range(len(images)): 31 img = load_img(images[i]) 32 # 画像を配列化して転置a 33 x = img_to_array(img) 34 x = np.expand_dims(x, axis=0) 35 # 画像の拡張 36 draw_images(generator, x, output_dir, i) 37 38print("fin")
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー