Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

My suggestion is to use BRISK and FREAK. I use this for Objectdetection an it works fine. In the OpenCV FREAK Example the use the Surfdetector but this doesn´t give me good Matches. But you should try it with the binary images. Hope this helps.

std::vector<keypoint> keypointsA, keypointsB;

Mat descriptorsA, descriptorsB;

std::vector<dmatch> matches;

BRISK detector(30,9,1.0F);

FREAK extractor;

BFMatcher matcher(NORM_HAMMING,false);

detector.detect( imgA, keypointsA );

extractor.compute( imgA, keypointsA, descriptorsA );

detector.detect( imgB, keypointsB );

extractor.compute( imgB, keypointsB, descriptorsB );

matcher.knnMatch(descriptorsA, descriptorsB, matches, 2);

drawMatches(imgAs, keypointsA, imgB, keypointsB, good_matches, imgMatch);