2012-04-27 77 views
1

我正在做一個openCV項目,在那裏我用SIFT關鍵點匹配兩個圖像,並且使用K最近鄰居搜索從相同的匹配中獲得了很好的匹配。其中k = 2。匹配的SIFT關鍵點的座標

現在我想獲得圖像2中匹配良好的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); 

    } 
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

+0

對不起,我不是在尋找鄰居矢量......我想知道在圖像2中具有良好匹配關鍵點的SIFT關鍵點的確切(x,y)座標,反之亦然。 – MMH 2012-04-30 01:43:20