2011-12-08 26 views
9

¿Alguien me puede ayudar? Quiero obtener las coordenadas x e y de los mejores píxeles que selecciona el emparejador de características en el código provisto, usando C++ con opencv.Opencv - Obtención de coordenadas de píxeles a partir del ajuste de características

http://opencv.itseez.com/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher

estado mirando alrededor, pero no puede hacer nada para trabajar.

¡Cualquier ayuda es muy apreciada!

Respuesta

13

La clase DMatch le da la distancia entre las dos correspondencias KeyPoints (tren y consulta). Entonces, los mejores pares detectados deberían tener la distancia más pequeña. El tutorial toma todas las coincidencias que son menos de 2 * (distancia mínima de par) y las considera las mejores.

Para obtener las coordenadas (x, y) de las mejores coincidencias. Debería usar good_matches (que es una lista de objetos DMatch) para buscar los índices correspondientes de los dos vectores KeyPoint (keypoints_1 y keypoints_2). Algo así como:

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

Algunos puntos y comas faltan :) –

+0

@ScottMarchant Gracias, buen señor :) ahora se han añadido puntos y comas. – mevatron

Cuestiones relacionadas