はじめに
画像認識をする機械学習のモデルを自分で作ってみようと思い、
その下準備として画像の一部を切り抜いて、学習する画像を作成するスクリプトを書きました。
画像が保存されているフォルダを指定するとその配下にあるファイルを一括で加工するようにしています。
実施する内容は以下
・画像をグレースケールにして色の特徴を消す。
・画像から学習したい領域を切り抜いて保存する。
やったこと
「C:\XXXXXX\XXXXXX\」の下に加工したい画像を置いて、スクリプトを実行すると、
「C:\YYYYYY\YYYYYY\」の下に加工後のファイルを出力します。
パスは実行する環境に合わせて記載してください。
私の場合、Y軸は200~1597 X軸は1024~1568 の長方形で切り取りたかったので、
img_1[200:1597, 1024:1568] としています。
import cv2
import glob
input_dir = "C:\\XXXXXX\\XXXXXX\\*"
output_dir = "C:\\YYYYYY\\YYYYYY\\"
#ファイル名を取得
for path in glob.iglob(input_dir, recursive=True):
try:
img = cv2.imread(path)
#グレースケール処理
img_1 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
#画像の切り取り
img_2 = img_1[200:1597, 1024:1568]
#加工後のファイルを保存
output_path = output_dir + "mask_" + path.split("\\")[-1]
cv2.imwrite(output_path, img_2)
print(output_path + " Finish!")
except Exception as e:
print("error! " + str(e))