3

OpenCVを使用して2つの画像を比較したいと思います。他のトレーニングデータセットの中で最も近い一致結果をフィルタリングできますか?
例:片手で5番を示すトレーニング画像を含むデータベース。

他の誰かと同じサインをそのトレーニング画像と一致させることは可能ですか..?OpenCVを使用します。私を助けてください。

4

2 に答える 2

3

sinelawが言ったように、一般的に簡単で簡単な解決策はありません。

ただし、特定の例で機能する簡単な方法を1つ考えることができます。

  • 画像内の人間の肌に対応する領域を検出します。これは、その人が手袋を着用していないことを前提としています(着用している場合は、手袋の色を知っていると役立ちます)。皮膚の検出については、この例を参照してください。基本的に、人種に関係なく、人間の皮膚はクロマスペクトルのごく一部しか占めていないことが知られているため、クロミナンスを使用して画像をYUVとしきい値に変換します。
  • 輪郭を検出します。OpenCVでは、これはcvFindContours関数を使用して行われます。省略記号を見つけるために使用されているその関数の例を次に示します。この時点での楕円だけでなく、あらゆる形状の輪郭に関心があります。
  • 次に、すべての輪郭を調べて、5つの信号を出す開いた手のように見える輪郭を探します。これは、これが聞こえるほど難しくはありません。これは、4〜5個の凸包(黒い矢印)を持つ凸包(赤い輪郭)を探しているためです。

凸状欠陥

  • 上の画像は、OpenCVAPIcvConvexityDefectsの関数の説明からのものです。使用方法については、説明を読んでください。
  • 凸包ができたら、欠陥のサイズを確認します。それらのうちの4つはほぼ同じサイズである必要があります(指が同じ長さであるため)。その場合、あなたはあなたのオープンハンドでハイタッチをします。
于 2011-01-31T13:48:13.610 に答える
1

この質問に対する私の答えを参照してください-簡単で簡単な解決策はありません。

于 2011-01-31T11:42:52.347 に答える