匹配的SIFT关键点的坐标

时间:2012-04-27 06:31:49

标签: c++ c opencv sift

我正在用openCV做一个项目,在那里我使用SIFT关键点匹配两个图像,并使用K最近邻搜索得到相同的匹配。其中k = 2。

现在我想获得在image2中具有良好匹配的SIFT关键点的坐标值以及Image2中相应关键点的坐标值。任何身体都可以帮助我。感谢。

我找到了解决方案......这很容易......愚蠢的我......我只是将关键点转换为CvPoints,从中我可以轻松获得坐标值....

2 个答案:

答案 0 :(得分: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);

  }  

答案 1 :(得分:0)

您可以使用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