ETLデータベースの画像をラベルデータと画像データに分けて保存
実行結果
hanamichi-sukusuku.hatenablog.com
このプログラムでは上記でETL1のデータベースから読み込んだカタカナ手書き文字のデータをラベルデータと画像データに分けて保存していく。
保存先や画像サイズの指定
im_sizeで25にしているのは必要最低限のサイズに縮小してからモデルに学習させるため。
save_fileには保存先のパスを格納。
plt.figure()では画像の描画領域を指定している。引数のfigsize=(width, height)のように指定していて単位はインチ。
カタカナの画像が入っているディレクトリから画像を取得
変数kanadirには166,177~221までのディレクトリにア~ンまでのカタカナのデータが入っているのでそのディレクトリ名が入ったリストを作成。
resultは最終的に保存するラベルデータと画像データのリストを定義。
fs=glob.glob(img_dir+"/*")で各ディレクトリの入ったファイル名(画像データ名)を全て取得。
fsに格納されたファイル名をfor文で回し、それぞれの画像をcv2.imread()で読み込む。
グレースケールに変換。
cv2.resize()でサイズ変換。
resultにfor文でenumerate()を使用しているのでiにkanadir(166,177~221のディレクトリ名のリスト)のインデックス番号が入っているのでそれをラベルにした画像データを追加。
plt.subplot()で複数の画像を一つのプロットに描く。
グレースケールの画像データに変換しているのでplt.imshow()でcmap='gray'を指定。
ラベルと画像データの保存
resultにはラベル、それに対応した画像データが格納されているので、pickle.dump()でresultと保存先のファイルを開き保存。