1

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

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

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

4

2 回答 2

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);

  }  
于 2012-04-30T02:42:09.663 回答
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

于 2012-04-27T08:10:42.087 回答