自然環境でキャプチャした画像から緑色のオブジェクトのみを検出したいのですが、それを定義するにはどうすればよいですか?ここではしきい値を渡したいので、「x」と言います。このxを使用することで、緑色のオブジェクトのみを1つの色(白)に、他の色は別の色(黒)で表示する必要がありますこの。前もって感謝します。
更新:
HSV
カラーマップを作成します。このマップを使用して以前よりも色の範囲を見つけるのは_more easy and accurate
_です。
そして、green
を見つけるために_(40, 40,40) ~ (70, 255,255) in hsv
_の使用を変更する必要があるかもしれません。
元の答え:
HSV
色空間に変換し、cv2.inRange(hsv, hsv_lower, hsv_higher)
を使用して、緑色のマスクを取得します。sunflower
にはthe range (in hsv)
:_(36,0,0) ~ (86,255,255)
_を使用します。
ソース画像:
マスクされた緑の領域:
その他の手順:
コアソースコード:
_import cv2
import numpy as np
## Read
img = cv2.imread("sunflower.jpg")
## convert to hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
## mask of green (36,25,25) ~ (86, 255,255)
# mask = cv2.inRange(hsv, (36, 25, 25), (86, 255,255))
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255))
## slice the green
imask = mask>0
green = np.zeros_like(img, np.uint8)
green[imask] = img[imask]
## save
cv2.imwrite("green.png", green)
_
同様: