1: 必要なライブラリをインポートする
import cv2
import numpy as np
2: 画像を読み込む
# 画像を読み込む
image = cv2.imread('image.jpg')
3: 色空間を変換
HSV色空間に変換します。HSV色空間は、色調(Hue)、彩度(Saturation)、明度(Value)を使って色を表現し、特定の色範囲を選択しやすくなります。
# 色空間をHSVに変換
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
4: 色の範囲を定義
特定の色範囲をHSV値で定義します。ここでは例として、青色の範囲を定義しますが、必要に応じて調整してください。
# 青色の範囲を定義(HSV空間)
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
5: 色範囲内のマスクを作成
定義した色範囲に基づいてマスクを作成します。マスクは、選択した色範囲のピクセルが白、それ以外が黒として表示される2値画像です。
# 青色の部分のみを取り出すマスクを作成
mask = cv2.inRange(hsv, lower_blue, upper_blue)
6: マスクと元画像の論理積
マスクを元の画像に適用して、特定の色が存在する領域のみを抽出します。
# マスクを元画像と組み合わせる
res = cv2.bitwise_and(image, image, mask=mask)
7: 結果を表示
# 元画像、マスク、結果を表示
cv2.imshow('Original', image)
cv2.imshow('Mask', mask)
cv2.imshow('Detected Color', res)
cv2.waitKey(0)
cv2.destroyAllWindows()