如何使用蛮力匹配/ SIFT描述符获取匹配点的位置

时间:2019-01-15 17:19:51

标签: python opencv sift

我尝试将我的SIFT-Keypoints与BF-matcher匹配。我曾经像本教程https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html

那样做

但是,如果我想通过print(good)获得x,y位置,它只会给我类似的东西  DMatch 000001DD9C4E0EB0

如何将其转换为职位?

1 个答案:

答案 0 :(得分:1)

由于您未提供任何代码,因此我将根据教程中的代码回答您的问题。 基本上,关键点是由SIFT算法检测到的具有旋转,缩放和x,y位置的点,而描述符只是用于匹配它们的特征向量。 在matchs变量中,描述符之间有一组匹配项(DMatch)。关键点位于kp1和kp2中。 要找到匹配的两个点(p1,p2),请使用如下代码:

for match in matches:
  p1 = kp1[match.queryIdx].pt
  p2 = kp2[match.trainIdx].pt