シナリオ :
2 つの異なる色のオブジェクトを追跡しようとしています。最初に、ユーザーは最初の色付きのオブジェクト (たとえば、RED の可能性がある) をカメラの前の特定の位置 (画面上に四角形でマークされている) に保持し、任意のキーを押すように求められ、その後、私のプログラムはフレームのその部分を取得します。 (ROI) を取得し、その中の色を分析して、追跡する色を見つけます。2 番目のオブジェクトについても同様です。次に、通常どおり、cv.inRange
関数を HSV カラー プレーンで使用し、オブジェクトを追跡します。
行われること:
追跡対象の ROI を HSV に変換し、Hue ヒストグラムを確認しました。以下の2つのケースがあります:
(ここでは主要な中央ピークが 1 つしかありません。しかし、場合によっては、そのようなピークが 2 つ得られます。1 つは大きなピークで、周囲にピクセル クラスターがあり、2 番目のピークは最初のピークよりも小さいですが、大きなサイズで周囲に小さなクラスターもあります。 . 今はサンプル画像がありませんが、ほぼ以下のような感じです (ペイントで作成)
質問 :
How can I get best range of hue values from these histograms?
最良の範囲とは、ROI のピクセルの約 80 ~ 90% がその範囲にあることを意味します。
または、さまざまな色のオブジェクトを追跡するためのこれよりも優れた方法はありますか?