diff --git a/modules/tracking/samples/benchmark.cpp b/modules/tracking/samples/benchmark.cpp index d1589461b..3fb8c9971 100644 --- a/modules/tracking/samples/benchmark.cpp +++ b/modules/tracking/samples/benchmark.cpp @@ -8,7 +8,7 @@ #include const int CMDLINEMAX = 30; -const int ASSESS_TILL = INT_MAX; + int ASSESS_TILL = INT_MAX; const int LINEMAX = 40; using namespace std; @@ -62,6 +62,10 @@ static void help(){ "./tracker [] ...\n" << endl; + cout << "\n\nConsole keys: \n" + "\t-s - save images\n" + "\t-l=100 - assess only, say, first 100 frames\n"; + cout << "\n\nHot keys: \n" "\tq - quit the program\n" "\tp - pause video\n"; @@ -74,8 +78,13 @@ static void parseCommandLineArgs(int argc, char** argv,char* videos[],char* gts[ for(int i=1;iupdate( frame, initBoxes[i] ); start=clock()-start; averageMillisPerFrame[i]+=1000.0*start/CLOCKS_PER_SEC; - if(trackerRes==false){ + if( trackerRes == false ) + { initBoxes[i].height=initBoxes[i].width=-1.0; - }else{ + } + else + { rectangle( image, initBoxes[i], palette[i+1], 2, 1 ); + putText(image, algorithms[i], Point(1,16 + (i+1)*14), FONT_HERSHEY_SIMPLEX, 0.5, palette[i+1],2); } for(int j=0;j<(int)res.results[i].size();j++) res.results[i][j]->assess(boundingBox,initBoxes[i]); @@ -340,15 +354,23 @@ static AssessmentRes assessment(char* video,char* gt_str, char* algorithms[],cha } int main( int argc, char** argv ){ - palette.push_back(Scalar(255,0,0));//BGR - palette.push_back(Scalar(0,0,255)); - palette.push_back(Scalar(0,255,255)); + palette.push_back(Scalar(255,0,0));//BGR, blue + palette.push_back(Scalar(0,0,255));//red + palette.push_back(Scalar(0,255,255));//yellow + palette.push_back(Scalar(255,255,0));//orange int vcount=0,acount=0; char* videos[CMDLINEMAX],*gts[CMDLINEMAX],*algorithms[CMDLINEMAX],*initBoxes[CMDLINEMAX][CMDLINEMAX]; char keys[CMDLINEMAX][LINEMAX]; strcpy(keys[0],"-s"); + strcpy(keys[1],"-a"); + parseCommandLineArgs(argc,argv,videos,gts,&vcount,algorithms,initBoxes,&acount,keys); + saveImageKey=(keys[0][0]=='\0'); + if( strcmp(keys[1],"-a") != 0 ) + ASSESS_TILL = atoi(keys[1]); + else + ASSESS_TILL = INT_MAX; CV_Assert(acount results; - for(int i=0;iprintName(nameStrings[tableCount])