2
cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed);

cvScalar関数の各パラメーターが何を表しているのか疑問に思っています。HSVになると思いましたが、希望の色をしきい値処理していないようです。誰かがパラメータをもう少し明確に説明できますか?

4

2 に答える 2

10

cvInrangeS関数は、配列要素が2つのスカラーの間にあることを確認します。

最初のcvScalar値は、包括的下限を示します。2番目のcvScalar値は、排他的な上限を示します。

cvInrangeSは、RGB、BGR、HSVなどとして指定した値を気にしません。入力として指定した配列要素(最初のパラメーター)(ここでは画像)を調べ、要素が指定した範囲内にあるかどうかを確認します。指定。そうである場合は選択され、そうでない場合は拒否されます。そして、結果を最後のパラメータである出力画像にフィードします。

そのドキュメントをチェックしてください

ここで、HSV画像を提供します。したがって、cvScalarは、抽出する範囲の最低色と最高色を示します。

RGB画像の場合は、最小および最大RGB色を指定します。

そして、それが良い結果を提供するので、HSVをよりよく使用してください。ここを読んでください

そして今、RGBをHSV値に変換したい場合は、ここここで試してください。

(OpenCVでは赤と青が入れ替わっていることを忘れないでください。RGBではなくBGRです)。

于 2012-01-31T05:01:43.777 に答える
4

その意味は

H-色相、S-彩度、V-値

それらのそれぞれを理解するためにここを見てください:

http://en.wikipedia.org/wiki/HSL_and_HSV

色は主に色相コンポーネントで定義されます。ここにHSV空間でのしきい値処理に関する優れたチュートリアルがあります。

http://aishack.in/tutorials/thresholding/

于 2012-01-31T01:54:01.573 に答える