I want to implement a feature-based alignment algorithm using the ORB feature detector and extractor.
So far, I extracted the features using ORB class from OpenCV
UPDATE: Now it is in the OpenCV documentation, here:
http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb
A detailed description of the algorithm is found here: http://www.willowgarage.com/sites/default/files/orb_final.pdf
It is not mentioned in OpenCV documentation but actually OpenCV has:
Two types of descriptors:
And corresponding matchers:
FlannBasedBruteForce<L2<float> >BruteForce<SL2<float> > //since 2.3.1BruteForce<L1<float> >BruteForce<Hamming>BruteForce<HammingLUT>FlannBased with LSH index //since 2.4.0So you need to modify your code to use for example BruteForce<Hamming> matcher for ORB descriptors. It is possible to use L2 or L1 distance for matching uchar descriptors but results will be incorrect and findHomography returns unsatisfactory results.