この記事では、PythonとOpenCVを使用して、特定のフォルダ内の複数の画像に対して一括で処理を行う方法について説明します。
まず、glob
を使用してフォルダ内のjpgファイル名を取得し、リスト化します。次に、リストの配列数分for in
でループを行います。
import pathlib
import cv2
import numpy as np
input_dir = "images/input"
input_list = list(pathlib.Path(input_dir).glob('**/*.jpg'))
for i in range(len(input_list)):
img_file_name = str(input_list[i])
img_np = np.fromfile(img_file_name, dtype=np.uint8)
img = cv2.imdecode(img_np, cv2.IMREAD_COLOR)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print("-------------------------------------------")
print(img_file_name)
このコードは、各画像をバイナリとして読み込み、その後OpenCV形式に変換します。その後、画像をグレースケールに変換します。
このように、PythonとOpenCVを使用すると、特定のフォルダ内の複数の画像に対して一括で処理を行うことが可能です。この方法は、大量の画像データを扱う必要がある画像処理タスクに非常に便利です。
なお、この記事で紹介したコードは一例であり、具体的な画像処理の内容(例えば、画像のトリミングやフィルタリングなど)は、読者の目的に応じて適宜追加・変更してください。.