As you know SIFT descriptor is a vector in a high dimensional space, i.e 128. As you run it on the image to find interest points, it will find some points as interest points and their descriptor as a vector for each to describe this point in a high dimensional space.
Each of these points in the first image, say A
, should have a corresponding in the other image, say B
! It means that, those who have a smallest distance are the most likely to be correspondent, But Not all of them. Some of them may be outliers that we expect to have a high distance value in its detected correspondence.That makes us to use max_dsist
in our code. In some types of contexts you may not want all the best matches because the number of correspondence points are maybe relatively high, or .... So we define a lower bound on the distance that we do that with min_dist
.
I hope that gives you the insight!