i have taken a look at some of the posts in this site and others as well, an i notices that, after callin the .match(..,...,..,) method, and to draw correct matches we always use the queryDescriptor.rows() as shown in the bellow snippet, i found it here
//calc min/max dist
Double max_dist = 0.0;
Double min_dist = 100.0;
for(int i = 0; i < descriptor_object.rows(); i++){
Double dist = (double) matchesList.get(i).distance;
if(dist < min_dist) min_dist = dist;
if(dist > max_dist) max_dist = dist;
}
1-why always the querydescriptors' rows? and why the queryDescriptor??
2-if i took the matches from the .match(..,..,..) method, and convert them to DMatch object, and then sorted them ascendingly with respect to the distance attribute, at this case, do i need thresholding?? i am asking this question because, since i have an ascending sorted list, then i can just pick the top 10, 30 or whatever i want, so do i still need thresholding?