1

この以前に尋ねられた質問に関してフォローアップの質問があります:

フランベースのマッチャー、または一般的にopencvでフランを使用する方法は?

特に答えのこの部分に関して:

/* for kk=1 to matches.size()

       the best match for queryKeypoints[matches[kk].queryIdx].pt 
       is dbKeypoints[matches[kk].imgIdx][matches[kk].trainIdx].pt
 */

私の質問は次のとおりです:opencvのflannbasedmatcher match()関数とdmatch構造を使用して、最も一致するキーポイント(最短距離)が見つかった画像にアクセスすることは可能ですか?もしそうなら、これをどのように行うことができますか?

具体的には、クエリ画像を一連の画像と比較するときに、これをどのように行うのでしょうか。この場合、すべてのキーポイントが混在して構築されたフランkdツリーですか(対応する画像ラベルはツリー内のキーポイントに添付されていません)?または、特定のキーポイントが属する画像にアクセスする方法はありますか?

flannbasedmatcher match()およびtrain()関数がどのように機能するかについての他のポインタも素晴らしいでしょう。私はソースコードを精査しましたが、それでも多少謎に包まれています。ありがとうございます。

どんな指導も大歓迎です-ありがとう!

4

1 に答える 1

2

Dmatch 属性 imgIdx は、一致したキーポイントが属する「トレーニング」画像のインデックスを報告します。DescriptorMatcher.:add を使用して、記述子のベクトルを「トレーニング」画像記述子のベクトルに追加します。画像 ID X が特定の画像ファイルに対応するかどうかは、あなた次第です。

于 2012-05-14T22:51:57.793 に答える