Understanding Keypoint matching

asked 2013-10-06 16:17:33 -0500

maraujop gravatar image

Hi there,

I've been playing with feature detection in SimpleCV. I want to use it for image matching (tracking is simpler compared to matching in my opinion). I've found out the API is a little inconsistent. For SIFT you can find:

img.matchSIFTKeypoints
img.drawSIFTKeypointMatch

However, if I want to do the same using SURF, It only has:

img.drawKeypointMatches

There is no method that returns matches, there is only one for drawing. However, there is findKeypointMatch which finds the best match (something like a findTemplate but on stereoids), not exactly the same, right?

I can do findKeypoints on any image, but there is no easy way to see how many keypoints of a template are found in another image, right?

Also drawKeypointMatches uses SURF, however this is not mentioned in the docstring or docs, it's something I've deduced reading the code. Is there any way to do matching using BRISK for example?

I've modified drawKeypointMatches code to print the number of keypoints found, the total and a percentage 72/1438/5%. This is extremely helpful for debugging what algorithm works better. Would this make sense within SimpleCV?

Thanks

edit retag flag offensive close merge delete