1 | initial version |
Hi there, I´m using BruteForceMatcher.knnMatch
My results are filtered this way.
for(int i = 0; i < matches2.size(); ++i) { if (matches2[i].size() < 2) continue;
if((matches2[i][0].distance < 0.59*(matches2[i][1].distance)) && ((int) matches2[i].size()<=2 && (int) matches2[i].size()>0))//Surf detector 0.56 StarFeatureDetector 0.59 Brisk 0.6
good_matches.push_back(matches2[i][0]);
if((matches2[i][0].distance <0.675*(matches2[i][1].distance)) && ((int) matches2[i].size()<=2 && (int) matches2[i].size()>0))//Surf detector 0.56 StarFeatureDetector 0.59 Bris 0.675
out_matches.push_back(matches2[i][0]);
}
After I filtered the matches, I´m checking the ration: if(out_matches.size()!=0) { double x=((double)good_matches.size()/(double)out_matches.size()); cout<<"x:"<<x<<endl; if(0.2<x="" &&="" good_matches.size()>="6" &&="" out_matches.size()>2)="" {="" found="" }<="" p="">
2 | Code formatting |
Hi there, I´m using BruteForceMatcher.knnMatch
My results are filtered this way.
for(int i = 0; i < matches2.size(); ++i)
After I filtered the matches, I´m checking the ration: if(out_matches.size()!=0) { double x=((double)good_matches.size()/(double)out_matches.size()); cout<<"x:"<<x<<endl; if(0.2<x="" &&="" good_matches.size()>="6" &&="" out_matches.size()>2)="" {="" found="" }<="" p="">
3 | Code formatting |
Hi there, I´m using BruteForceMatcher.knnMatch
My results are filtered this way.
for(int i = 0; i < matches2.size(); ++i)
{
if (matches2[i].size() < 2)
continue;
if((matches2[i][0].distance < 0.59*(matches2[i][1].distance)) && ((int) matches2[i].size()<=2 && (int) matches2[i].size()>0))//Surf detector 0.56 StarFeatureDetector 0.59 Brisk 0.6
good_matches.push_back(matches2[i][0]);
if((matches2[i][0].distance <0.675*(matches2[i][1].distance)) && ((int) matches2[i].size()<=2 && (int) matches2[i].size()>0))//Surf detector 0.56 StarFeatureDetector 0.59 Bris 0.675
out_matches.push_back(matches2[i][0]);
}
After I filtered the matches, I´m checking the ration:
ratio:
if(out_matches.size()!=0)
{
double x=((double)good_matches.size()/(double)out_matches.size());
cout<<"x:"<<x<<endl; if(0.2<x="" &&="" good_matches.size()>="6" &&="" out_matches.size()>2)="" {="" found="" }<="" p="">
cout<<"x:"<<x<<endl;
if(0.2<x && good_matches.size()>=6 && out_matches.size()>2)
{
//found
}