表題そのままのスクリプトです
VGG16とSVMを使った判別機を作る際に使用したものの一部を切り取り、単独で機能するようにしました
#動作概略
1)img2ndarray.pyと同じフォルダ内に保存された画像ファイルを読み込み
2)画像サイズを224x224にリサイズ後、Numpy配列化
3)**[npy]**ファイルとして保存
#動作確認環境
python3.6.6
Tensorflow:1.10.0
Keras:2.2.2
#スクリプト全体
img2ndarray.py
import glob
import numpy as np
from keras.preprocessing.image import load_img,img_to_array
#image array size
img_size = (224,224)
#load images Folder
dir_name = 'test1'
#File type
file_type = 'jpg'
#load images and image to array
img_list = glob.glob('./' + dir_name + '/*.' + file_type)
temp_img_array_list = []
for img in img_list:
temp_img = load_img(img,grayscale=False,target_size=(img_size))
temp_img_array = img_to_array(temp_img) /255
temp_img_array_list.append(temp_img_array)
temp_img_array_list = np.array(temp_img_array_list)
#save np.array
np.save(dir_name+'.npy',temp_img_array_list)
#★解説
上からやっていることを解説
#import一式
import glob
import numpy as np
from keras.preprocessing.image import load_img,img_to_array
#読込画像の設定
#入力画像サイズの指示
img_size = (224,224)
#画像フォルダ名の指示
dir_name = 'test1'
#画像拡張子の指示
file_type = 'jpg'
#画像の読み込みと配列化
#フォルダ内のファイルパスをリスト化
img_list = glob.glob('./' + dir_name + '/*.' + file_type)
#保存先の配列を確保
temp_img_array_list = []
#ファイルパスのリストをもとに画像を配列化
for img in img_list:
#画像を224x224にリサイズしPIL形式で読込
temp_img = load_img(img,grayscale=False,target_size=(img_size))
#PIL形式からNumpy配列に変換と正規化(224, 224, 3)
temp_img_array = img_to_array(temp_img) /255
#変換したNumpy配列を末尾に追加
temp_img_array_list.append(temp_img_array)
#Numpy配列をリスト化(*, 244, 224, 3)
temp_img_array_list = np.array(temp_img_array_list)
#配列をnpyファイルとして保存
np.save(dir_name+'.npy', temp_img_array_list)