6
$\begingroup$

I know how to find SURF feature points and have code to find them, but I have no idea how to find the same point in 2 different images, I have laplacian, scale, orientation, descriptor, response and x, y. If i give it a very simple image, a triangle with no bottom and place it in two different places in two different images none of the info about the points are the same, Any help appreciated on how to compare points.

$\endgroup$
  • 1
    $\begingroup$ What are SURF points? $\endgroup$ – Ryan Jul 7 '15 at 15:36
  • $\begingroup$ the feature points found by the SURF algorithm, speeded up robust features $\endgroup$ – BinkyNichols Jul 7 '15 at 17:01
3
$\begingroup$

You compare the descriptors. The simplest approach is for every descriptor in image 1, you find its nearest neighbor in image 2. There are various strategies for discarding ambiguous matches, ensuring uniqueness of matches, using kd-trees for speed, etc. See the documentation for the matchFeatures function in MATLAB.

$\endgroup$
  • $\begingroup$ Thanks , but i cant use matlab., this is for a c# application, what algorithm does the matchfeatures function use? I cant find it on google $\endgroup$ – BinkyNichols Jul 7 '15 at 17:06
  • 1
    $\begingroup$ If you look at the documentation on the web, you will see a good explanation of how the algorithm works. You can also read David Lowe's paper on SIFT features, which explains how to match them. You can match SURF descriptors the same way. cs.ubc.ca/~lowe/papers/ijcv04.pdf $\endgroup$ – Dima Jul 7 '15 at 17:15
  • $\begingroup$ so you compare euclidean distance over the descriptors? so if i have 64 long descriptor i go sqrt(a.descriptor[i]-b.descriptor[i])^2) for each descriptor? then the ones with the smallest distance are the matches? $\endgroup$ – BinkyNichols Jul 7 '15 at 17:36
  • $\begingroup$ That's exactly it. $\endgroup$ – Dima Jul 7 '15 at 17:40
  • 1
    $\begingroup$ You have to determine the threshold experimentally. Typically the descriptors are normalized to be unit vectors. Then the maximum Euclidean distance between two descriptors is 2, and the minimum is 0. The threshold is somewhere in between. Please read David Lowe's paper. He describes a trick to eliminate ambiguous matches using the "ratio test". $\endgroup$ – Dima Jul 7 '15 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.