matchFeatures returns wrong matches

12 visualizaciones (últimos 30 días)
Manos el 6 de Oct. de 2015
Comentada: Dima Lisin el 8 de Oct. de 2015
Hello, I am trying to use the matchFeatures function in order to match a set of image corners returned by the corner function (Harris) with another set of the same image corners found manually with data cursor. Harris' algorithm returns 18 corners and I manually spot 20 but I guess this is fine. The problem is matchFeatures doesn't seem to work properly since these are my results :
right_matched_indexes = matchFeatures(right_image_corners_Harris, right_image_corners_manual);
Shouldn't 11 be matched to 9 and 14 to 2? I'd appreciate any help regarding why this is happening and any solutions. Thanks

Respuesta aceptada

Dima Lisin
Dima Lisin el 7 de Oct. de 2015
Hi Manos,
matchFeatures is not really meant to be used to match the (x,y) locations of points. It is designed to match feature descriptors, like SURF, BRISK, or FREAK. You are seeing these strange results, because matchFeatures interprets its inputs as feature vectors, and normalizes them to have a magnitude of 1.
For correct usage of matchFeatures please see the following example.
  2 comentarios
Manos el 7 de Oct. de 2015
Editada: Manos el 7 de Oct. de 2015
Thank you very much for your answer Dima. Truth is I read what you said somewhere else too , it just striked me as odd that matchFeatures would be a perfect hit for most of the points and only miss two. I guess those matched points were rather lucky. Thanks again!
Dima Lisin
Dima Lisin el 8 de Oct. de 2015
Well, the [x,y] vectors were normalized to have the magnitude of 1. So they were matched by the closest angle.

Iniciar sesión para comentar.

Más respuestas (0)


Más información sobre Feature Detection and Extraction en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by