PythonとOpenCVを用いて、画像から特定の色を認識し、検出する方法について解説します。この記事では、OpenCVのinRange
関数を使用して色の範囲を設定し、その範囲内の色を検出する方法を説明します。
OpenCVと色認識
OpenCVは、画像処理やコンピュータビジョンに広く使用されるオープンソースのライブラリです。Pythonと組み合わせることで、簡単に画像解析を行うことができます。
色認識は、画像解析の一部であり、特定の色を検出するために使用されます。OpenCVのinRange
関数は、指定した色範囲内のピクセルを検出するために使用されます。
PythonとOpenCVを用いた色認識のコード例
以下に、PythonとOpenCVを用いて画像から特定の色(この例では青)を検出するコード例を示します。
import cv2 as cv
import numpy as np
# 画像データの読み込み
img = cv.imread("sample.jpg")
# BGR色空間からHSV色空間への変換
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
# 色検出しきい値の設定
lower = np.array([90,64,0])
upper = np.array([150,255,255])
# 色検出しきい値範囲内の色を抽出するマスクを作成
frame_mask = cv.inRange(hsv, lower, upper)
# 論理演算で色検出
dst = cv.bitwise_and(img, img, mask=frame_mask)
cv.imshow("img", dst)
if cv.waitKey(0) & 0xFF == ord('q'):
cv.destroyAllWindows()
このコードは、画像から特定の色範囲を検出し、その色範囲内のピクセルを白(255)、それ以外のピクセルを黒(0)にするマスクを作成します。その後、元の画像とマスクを論理演算(AND演算)することで、指定した色範囲のみが表示される新しい画像を生成します。
まとめ
- PythonとOpenCVを用いて、画像から特定の色を認識し、検出する方法を学びました。この技術は、画像解析やコンピュータビジョンの分野で広く応用されています。さらに学びたい方は、OpenCVの公式ドキュメンテーションを参照してください。