我正在用openCV做一个项目,在那里我使用SIFT关键点匹配两个图像,并使用K最近邻搜索得到相同的匹配。其中k = 2。
现在我想获得在image2中具有良好匹配的SIFT关键点的坐标值以及Image2中相应关键点的坐标值。任何身体都可以帮助我。感谢。
我找到了解决方案......这很容易......愚蠢的我......我只是将关键点转换为CvPoints,从中我可以轻松获得坐标值....
答案 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://opencv.willowgarage.com/documentation/cpp/k_nearest_neighbors.html