如何使用opencv flannbasedmatcher和dmatch访问与最佳关键点匹配相对应的最佳图像

时间:2012-04-19 17:49:48

标签: opencv computer-vision

我对此前提出的问题有一个跟进问题:

How to use flann based matcher, or generally flann in 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结构访问已找到最佳匹配关键点(最短距离)的图像,如果是这样,可能会如何进行此?

具体来说,在将查询图像与一组图像进行比较时,如何做到这一点?在这种情况下,是否将所有关键点混合在一起构建的flann k-d树(然后相应的图像标签没有与树中的关键点连接)?或者有没有办法访问给定关键点所属的图像?

关于flannbasedmatcher match()和train()函数如何工作的任何其他指针也会很棒,因为我已经搜索过源代码并且仍然有些神秘 - 谢谢。

非常感谢任何指导 - 谢谢!

1 个答案:

答案 0 :(得分:2)

Dmatch属性imgIdx报告匹配关键点所属的“train”图像的索引。使用DescriptorMatcher.:dd将描述符向量追加到“训练”图像描述符的向量中。您需要知道图像ID X对应于特定的图像文件。