匹配的 SIFT 关键点的坐标

Posted

技术标签:

【中文标题】匹配的 SIFT 关键点的坐标【英文标题】:co-ordinate of the matched SIFT keypoints 【发布时间】:2012-04-27 06:31:49 【问题描述】:

我正在使用 openCV 做一个项目,其中我将两个图像与 SIFT 关键点匹配,并使用 K 最近邻搜索从相同的图像中获得了良好的匹配。其中 k=2。

现在我想获取在 image2 中匹配良好的 SIFT 关键点的坐标值,以及 Image2 中相应关键点的坐标值。任何机构都可以帮助我解决这个问题。谢谢。

我找到了解决方案......这很容易......我很傻......我只是将关键点转换为 CvPoints,然后我可以很容易地得到坐标值......

【问题讨论】:

【参考方案1】:

所有..我已经解决了问题...首先我将匹配好的关键点转换为 Cvpoints,然后从 Cvpoints 中获取坐标..相同的代码如下-

 for( i =0; i <good_matches.size(); i++ )
  
    // the keypoints from the good matches only
    points1.push_back( keypoints1[ good_matches[i].queryIdx ].pt );
    points2.push_back( keypoints2[ good_matches[i].trainIdx ].pt );

    printf("xco-ordinate of good mathched keypoints in image1   %d\n\n",points1[i].x);
    printf("y co-ordinate for image 1    %d \n\n",points1[i].y);
    printf("x co-ordinate for image2    %d \n\n",points2[i].x);
    printf("y co-ordinate for image2    %d\n\n",points2[i].y);

    

【讨论】:

【参考方案2】:

您可以使用 CvKNearest::find_nearest(...) 获取相邻向量。我相信您正在寻找参数邻居。

参考资料:

http://docs.opencv.org/modules/ml/doc/k_nearest_neighbors.html?highlight=cvknearest#cvknearest-find-nearest

较旧的文档,但带有代码示例:

http://opencv.willowgarage.com/documentation/cpp/k_nearest_neighbors.html

【讨论】:

抱歉,我不是在寻找邻居向量...我想知道 SIFT 关键点的确切 (x,y) 坐标,它在 image2 中具有良好匹配的关键点,反之亦然.

以上是关于匹配的 SIFT 关键点的坐标的主要内容,如果未能解决你的问题,请参考以下文章

SVM 用于图像特征分类?

使用 SIFT 将图像与数据库匹配

在vs环境中跑动sift特征提取(原理部分)

匹配两个图像关键点

OpenCV中的特征匹配(Feature Matching)

matlab 尺度不变特征变换sift 图片匹配算法