diff --git a/modules/tracking/src/TLD.hpp b/modules/tracking/src/TLD.hpp index 5baa8089d..9c1ed3ee5 100644 --- a/modules/tracking/src/TLD.hpp +++ b/modules/tracking/src/TLD.hpp @@ -56,7 +56,7 @@ namespace cv start=clock();{a} milisec=1000.0*(clock()-start)/CLOCKS_PER_SEC;\ printf("%-90s took %f milis\n",#a,milisec); } #define HERE fprintf(stderr,"%d\n",__LINE__);fflush(stderr); -#define START_TICK(name) { clock_t start;float milisec=0.0; start=clock(); +#define START_TICK(name) { clock_t start;double milisec=0.0; start=clock(); #define END_TICK(name) milisec=1000.0*(clock()-start)/CLOCKS_PER_SEC;\ printf("%s took %f milis\n",name,milisec); } extern Rect2d etalon; diff --git a/modules/tracking/src/trackerTLD.cpp b/modules/tracking/src/trackerTLD.cpp index 84c7524b4..92485d850 100644 --- a/modules/tracking/src/trackerTLD.cpp +++ b/modules/tracking/src/trackerTLD.cpp @@ -81,6 +81,7 @@ public: static void onMouse( int event, int x, int y, int, void* obj){ ((MyMouseCallbackDEBUG*)obj)->onMouse(event,x,y); } + MyMouseCallbackDEBUG& operator= (const MyMouseCallbackDEBUG& /*other*/){return *this;} private: void onMouse( int event, int x, int y); Mat& img_,imgBlurred_; @@ -309,13 +310,15 @@ bool TrackerTLD::updateImpl(const Mat& image, Rect2d& boundingBox){ } data->printme(); tldModel->printme(stdout); - if(!true && data->frameNum==82){ +#if !1 + if(data->frameNum==82){ printf("here I am\n"); MyMouseCallbackDEBUG* callback=new MyMouseCallbackDEBUG(imageForDetector,image_blurred,detector); imshow("picker",imageForDetector); setMouseCallback( "picker", MyMouseCallbackDEBUG::onMouse, (void*)callback); waitKey(); } +#endif if(it==candidatesRes.end()){ data->confident=false; @@ -397,25 +400,21 @@ timeStampPositiveNext(0),timeStampNegativeNext(0),params_(params){ for(int i=0;i<(int)closest.size();i++){ for(int j=0;j<20;j++){ Mat_ standardPatch(15,15); - if(true){ - center.x=closest[i].x+closest[i].width*(0.5+rng.uniform(-0.01,0.01)); - center.y=closest[i].y+closest[i].height*(0.5+rng.uniform(-0.01,0.01)); - size.width=closest[i].width*rng.uniform((double)0.99,(double)1.01); - size.height=closest[i].height*rng.uniform((double)0.99,(double)1.01); - float angle=rng.uniform((double)-10.0,(double)10.0); - - resample(scaledImg,RotatedRect(center,size,angle),standardPatch); - - for(int y=0;y(dy*j,dx*i),blurred_img.step[0])){ + if(!ensembleClassifier(&blurred_img.at(dy*j,dx*i),(int)blurred_img.step[0])){ continue; } pass++; @@ -530,12 +529,12 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v size.height/=1.2; scale*=1.2; resize(img,resized_img,size); - GaussianBlur(resized_img,blurred_img,GaussBlurKernelSize,0.0); + GaussianBlur(resized_img,blurred_img,GaussBlurKernelSize,0.0f); }while(size.width>=initSize.width && size.height>=initSize.height); END_TICK("detector"); fprintf(stdout,"after NCC: nneg=%d npos=%d\n",nneg,npos); - if(!false){ +#if !0 std::vector poss,negs; for(int i=0;i<(int)rect.size();i++){ if(isObject[i]) @@ -545,8 +544,8 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v } fprintf(stdout,"%d pos and %d neg\n",(int)poss.size(),(int)negs.size()); drawWithRects(img,negs,poss); - } - if(!true){ +#endif +#if !1 std::vector scanGrid; generateScanGrid(img.rows,img.cols,initSize,scanGrid); std::vector results; @@ -561,8 +560,8 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v rectangle( image,scanGrid[it-results.begin()], 255, 1, 1 ); imshow("img",image); waitKey(); - } - if(!true){ +#endif +#if !1 Mat image; img.copyTo(image); rectangle( image,res, 255, 1, 1 ); @@ -571,7 +570,7 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v } imshow("img",image); waitKey(); - } +#endif fprintf(stdout,"%d after ensemble\n",pass); if(maxSc<0){ @@ -698,7 +697,7 @@ void TrackerTLDModel::integrateAdditional(const std::vector >& eForM } double p=0; for(int i=0;i<(int)classifiers.size();i++){ - p+=classifiers[i].posteriorProbability(eForEnsemble[k].data,eForEnsemble[k].step[0]); + p+=classifiers[i].posteriorProbability(eForEnsemble[k].data,(int)eForEnsemble[k].step[0]); } p/=classifiers.size(); if((p>0.5)!=isPositive){ @@ -739,17 +738,17 @@ int Pexpert::additionalExamples(std::vector >& examplesForModel,std: for(int i=0;i<(int)closest.size();i++){ for(int j=0;j<10;j++){ Mat_ standardPatch(15,15),blurredPatch(initSize_); - center.x=closest[i].x+closest[i].width*(0.5+rng.uniform(-0.01,0.01)); - center.y=closest[i].y+closest[i].height*(0.5+rng.uniform(-0.01,0.01)); - size.width=closest[i].width*rng.uniform((double)0.99,(double)1.01); - size.height=closest[i].height*rng.uniform((double)0.99,(double)1.01); - float angle=rng.uniform((double)-5.0,(double)5.0); + center.x=(float)(closest[i].x+closest[i].width*(0.5+rng.uniform(-0.01,0.01))); + center.y=(float)(closest[i].y+closest[i].height*(0.5+rng.uniform(-0.01,0.01))); + size.width=(float)(closest[i].width*rng.uniform((double)0.99,(double)1.01)); + size.height=(float)(closest[i].height*rng.uniform((double)0.99,(double)1.01)); + float angle=rng.uniform(-5.0,5.0); resample(scaledImg,RotatedRect(center,size,angle),standardPatch); resample(blurredImg,RotatedRect(center,size,angle),blurredPatch); for(int y=0;y