2011-12-08 18 views

Odpowiedz

13

Klasa DMatch podaje odległość między dwoma pasującymi KeyPoints (pociąg i zapytanie). Zatem najlepsze wykryte pary powinny mieć najmniejszą odległość. Samouczek zbiera wszystkie mecze, które są mniejsze niż 2 * (minimalna odległość między parami) i uważa je za najlepsze.

Aby uzyskać współrzędne (x, y) najlepszych dopasowań. Powinieneś użyć good_matches (która jest listą obiektów DMatch), aby wyszukać odpowiednie indeksy z dwóch różnych wektorów KeyPoint (keypoints_1 i keypoints_2). Coś jak:

for(size_t i = 0; i < good_matches.size(); i++) 
{ 
    Point2f point1 = keypoints_1[good_matches[i].queryIdx].pt; 
    Point2f point2 = keypoints_2[good_matches[i].trainIdx].pt; 
    // do something with the best points... 
} 
+0

Niektóre średniki brakuje :) –

+0

@ScottMarchant Dziękuję, dobry panie :) średniki zostały dodane. – mevatron

Powiązane problemy