1 | initial version |
First of all, ORB descriptors are binary descriptors and therefore require to use the Hamming distance (the Euclidean distance makes no sense in this case). Your wrong results certainly come from here.
Then, I would say that matcher.add()
adds descriptors to the index. When you match()
your descriptors_scene
, it actually matches descriptors_scene
to the index (i.e. descriptors
here).
So it is not wrong that ORB matches the query to the train image. And I believe that SURF does the same.