cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed);
cvScalar関数の各パラメーターが何を表しているのか疑問に思っています。HSVになると思いましたが、希望の色をしきい値処理していないようです。誰かがパラメータをもう少し明確に説明できますか?
cvInrangeS
関数は、配列要素が2つのスカラーの間にあることを確認します。
最初のcvScalar値は、包括的下限を示します。2番目のcvScalar値は、排他的な上限を示します。
cvInrangeSは、RGB、BGR、HSVなどとして指定した値を気にしません。入力として指定した配列要素(最初のパラメーター)(ここでは画像)を調べ、要素が指定した範囲内にあるかどうかを確認します。指定。そうである場合は選択され、そうでない場合は拒否されます。そして、結果を最後のパラメータである出力画像にフィードします。
そのドキュメントをチェックしてください
ここで、HSV画像を提供します。したがって、cvScalarは、抽出する範囲の最低色と最高色を示します。
RGB画像の場合は、最小および最大RGB色を指定します。
そして、それが良い結果を提供するので、HSVをよりよく使用してください。ここを読んでください。
そして今、RGBをHSV値に変換したい場合は、こことここで試してください。
(OpenCVでは赤と青が入れ替わっていることを忘れないでください。RGBではなくBGRです)。
その意味は
H-色相、S-彩度、V-値
それらのそれぞれを理解するためにここを見てください:
http://en.wikipedia.org/wiki/HSL_and_HSV
色は主に色相コンポーネントで定義されます。ここにHSV空間でのしきい値処理に関する優れたチュートリアルがあります。