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

haj*_*ajo 1 python opencv sift

我尝试将我的 SIFT-Keypoints 与 BF-matcher 匹配。我用来做它喜欢这样

但是如果我想得到 x,y 位置,print(good)它只会给我这样的东西:

DMatch 000001DD9C4E0EB0

如何将其转换为职位?

Pio*_*ski 10

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

for match in matches:
  p1 = kp1[match.queryIdx].pt
  p2 = kp2[match.trainIdx].pt
Run Code Online (Sandbox Code Playgroud)