我尝试使用BF-matcher来匹配我的SIFT-Keypoints。之前我的操作方式类似这个。 但是如果我想要用print(good)获取x、y位置,它只会给我像这样的结果: DMatch 000001DD9C4E0EB0 我应该如何把它转换成位置?
由于您没有提供代码,我根据教程中的代码回答您的问题。基本上,关键点是SIFT算法检测到的具有旋转、缩放和x、y位置的点,而描述符只是用于匹配它们的特征向量。在matches变量中,您有一组描述符之间的匹配(DMatch)。关键点位于kp1和kp2中。要找到两个匹配的点(p1,p2),请使用以下代码:for match in matches: p1 = kp1[match.queryIdx].pt p2 = kp2[match.trainIdx].pt
kp1 [match [0] .queryIdx] .pt
。 - Radwa Khattab