PythonとOpenCVを使用して、特定のフォルダ内にある複数の画像をforループで開き、処理を行う方法について説明します。
まず、画像ファイルの名前を取得するために、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)
このコードでは、numpy
を使用して画像をバイナリで開き、そのバイナリをOpenCV形式に変換しています。その後、OpenCV形式の画像をグレースケール化しています。
このようにPythonとOpenCVを使用すると、画像処理の繰り返し処理を効率的に行うことができます。さらに詳細な処理を追加することで、より高度な画像処理を実現することが可能です。