1

有没有办法为 OpenCV 的 features2d 中由 DescriptorMatcher 计算的潜在匹配的图像描述符对设置阈值?

详细地说,我有一个 Bruteforce-Matcher,我想用它计算两个图像的描述符对,并且只有具有最小阈值距离的对才应该匹配。

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

谢谢你的帮助!

4

2 回答 2

3

好的,所以我做了更多的阅读,发现了一些有趣的帖子,比如如何使用基于 flann 的匹配器,或者通常在 opencv 中使用 flann?并想出了我自己的方式;-)

首先,我使用 FlannBasedMatcher 来匹配计算的描述符。之后,我对匹配项进行了排序(默认情况下,它们按距离升序排序)。创建了第二个 DMatch 向量,并添加了距离低于我选择的距离阈值的匹配项。就是这样。这样我也可以选择前 N 个匹配它的阈值被选择为坏。

可能不是最好/最干净的方式,但它是一个快速的解决方案,适用于原型情况。

于 2012-05-02T20:23:46.023 回答
1

使用radiusMatch而不是match

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