Recently there is a big change in OpenCV2.2 to OpenCV2.3.
The new version contains many interesting features including new feature detector, ORB.
One might wonder about performance of each feature detectors in terms of processing speed, accuracy etc.
Here you could find brief information about these:
About feature detectors:
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:
- float descriptors:
- uchar descriptors:
And corresponding matchers:
- for float descriptors:
BruteForce<SL2<float> > //since 2.3.1
- for uchar descriptors:
So 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.