I am implementing the SIFT algorithm , where my purpose of using this is that i have a set of images and I want to find the best match against a single image, which I have kept as a 'template image'. SIFT returns matches and scores, where 'matches' represent the descriptors that were found to be same in both images, and 'scores' are determined by the Euclidean method.
Now I am stuck at the point that I need to evaluate the best match amongst all the images with my template image. I figured out that when there is an exact match between two images the 'score' turns out to be zero, because descriptor positions in both images are the same. How shall I go about it that I can say this image is the best match or the second best match against template using 'scores' or any other method?
For each image you have already found a set of matches and the corresponding scores w.r.t. the template image, right?
You could just sum all scores for each image to get a total score per image, and then select as the "best matching" image the one with the lowest total score. Similarly for "second best", etc.
However, I have to point out that usually the main difficulty after applying the basic SIFT algorithm lies in determining which matches are actually correct. If you have done this well enough (e.g. using some robust method like RANSAC), finding the "best matching image" shouldn't be too hard, as explained above.