1

OpenCVのfeatures2dでDescriptorMatcherによって計算された画像記述子の潜在的に一致するペアのしきい値を設定する方法はありますか?

詳細には、2つの画像の記述子ペアを計算するBruteforce-Matcherがあり、しきい値の最小距離を持つペアのみが一致する必要があります。

BFMatcher matcher(NORM_L2, true);
vector<DMatch> matches;
matcher.match(descriptors1, descriptors2, matches);

ご協力いただきありがとうございます!

4

2 に答える 2

3

わかりましたので、さらに読んで、How to use flann based matcher, or general flann in opencv? のような興味深い投稿を見つけました。そして自分のやり方を見つけました;-)

最初に、FlannBasedMatcher を使用して、計算された記述子を照合しました。その後、一致を並べ替えました(デフォルトでは距離の昇順で並べ替えられます)。2 番目の DMatch ベクトルを作成し、私が選択した距離しきい値を下回る距離の一致を追加しました。それでおしまい。このようにして、しきい値が選択されていない上位 N の一致を選択することもできます。

最善/最もクリーンな方法ではないかもしれませんが、プロトタイプの状況では問題ない迅速な解決策です。

于 2012-05-02T20:23:46.023 に答える
1

matchの代わりにradiusMatchを使用する

matcher.radiusMatch(descriptors1, descriptors2, matches, your-threshold);
于 2013-04-12T10:19:42.013 に答える