Commit 4e14e8c8 authored by Alex Leontiev's avatar Alex Leontiev

coding style

parent ed4aeef7
This diff is collapsed.
...@@ -57,60 +57,67 @@ namespace cv {namespace tld ...@@ -57,60 +57,67 @@ namespace cv {namespace tld
#define dfprintf(x) #define dfprintf(x)
#define dprintf(x) #define dprintf(x)
#endif #endif
#define MEASURE_TIME(a) {\ #define MEASURE_TIME(a)\
clock_t start;float milisec = 0.0;\ {\
start = clock();{a} milisec = 1000.0 * (clock() - start) / CLOCKS_PER_SEC;\ clock_t start; float milisec = 0.0; \
dprintf(("%-90s took %f milis\n",#a,milisec)); } start = clock(); {a} milisec = 1000.0 * (clock() - start) / CLOCKS_PER_SEC; \
#define HERE dprintf(("line %d\n",__LINE__));fflush(stderr); dprintf(("%-90s took %f milis\n", #a, milisec));\
#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;\ #define HERE dprintf(("line %d\n", __LINE__)); fflush(stderr);
dprintf(("%s took %f milis\n",name,milisec)); } #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; \
dprintf(("%s took %f milis\n", name, milisec)); \
}
extern Rect2d etalon; extern Rect2d etalon;
void myassert(const Mat& img); void myassert(const Mat& img);
void printPatch(const Mat_<uchar>& standardPatch); void printPatch(const Mat_<uchar>& standardPatch);
std::string type2str(const Mat& mat); std::string type2str(const Mat& mat);
void drawWithRects(const Mat& img,std::vector<Rect2d>& blackOnes,Rect2d whiteOne = Rect2d(-1.0,-1.0,-1.0,-1.0)); void drawWithRects(const Mat& img, std::vector<Rect2d>& blackOnes, Rect2d whiteOne = Rect2d(-1.0, -1.0, -1.0, -1.0));
void drawWithRects(const Mat& img,std::vector<Rect2d>& blackOnes,std::vector<Rect2d>& whiteOnes,String fileName = ""); void drawWithRects(const Mat& img, std::vector<Rect2d>& blackOnes, std::vector<Rect2d>& whiteOnes, String fileName = "");
//aux functions and variables //aux functions and variables
template<typename T> inline T CLIP(T x,T a,T b){return std::min(std::max(x,a),b);} template<typename T> inline T CLIP(T x, T a, T b){ return std::min(std::max(x, a), b); }
/** Computes overlap between the two given rectangles. Overlap is computed as ratio of rectangles' intersection to that /** Computes overlap between the two given rectangles. Overlap is computed as ratio of rectangles' intersection to that
* of their union.*/ * of their union.*/
double overlap(const Rect2d& r1,const Rect2d& r2); double overlap(const Rect2d& r1, const Rect2d& r2);
/** Resamples the area surrounded by r2 in img so it matches the size of samples, where it is written.*/ /** Resamples the area surrounded by r2 in img so it matches the size of samples, where it is written.*/
void resample(const Mat& img,const RotatedRect& r2,Mat_<uchar>& samples); void resample(const Mat& img, const RotatedRect& r2, Mat_<uchar>& samples);
/** Specialization of resample() for rectangles without retation for better performance and simplicity.*/ /** Specialization of resample() for rectangles without retation for better performance and simplicity.*/
void resample(const Mat& img,const Rect2d& r2,Mat_<uchar>& samples); void resample(const Mat& img, const Rect2d& r2, Mat_<uchar>& samples);
/** Computes the variance of single given image.*/ /** Computes the variance of single given image.*/
double variance(const Mat& img); double variance(const Mat& img);
/** Computes normalized corellation coefficient between the two patches (they should be /** Computes normalized corellation coefficient between the two patches (they should be
* of the same size).*/ * of the same size).*/
double NCC(const Mat_<uchar>& patch1,const Mat_<uchar>& patch2); double NCC(const Mat_<uchar>& patch1, const Mat_<uchar>& patch2);
void getClosestN(std::vector<Rect2d>& scanGrid,Rect2d bBox,int n,std::vector<Rect2d>& res); void getClosestN(std::vector<Rect2d>& scanGrid, Rect2d bBox, int n, std::vector<Rect2d>& res);
double scaleAndBlur(const Mat& originalImg,int scale,Mat& scaledImg,Mat& blurredImg,Size GaussBlurKernelSize, double scaleStep); double scaleAndBlur(const Mat& originalImg, int scale, Mat& scaledImg, Mat& blurredImg, Size GaussBlurKernelSize, double scaleStep);
int getMedian(const std::vector<int>& values, int size = -1); int getMedian(const std::vector<int>& values, int size = -1);
class TLDEnsembleClassifier{ class TLDEnsembleClassifier
{
public: public:
static int makeClassifiers(Size size,int measurePerClassifier,int gridSize,std::vector<TLDEnsembleClassifier>& classifiers); static int makeClassifiers(Size size, int measurePerClassifier, int gridSize, std::vector<TLDEnsembleClassifier>& classifiers);
void integrate(const Mat_<uchar>& patch,bool isPositive); void integrate(const Mat_<uchar>& patch, bool isPositive);
double posteriorProbability(const uchar* data,int rowstep)const; double posteriorProbability(const uchar* data, int rowstep) const;
double posteriorProbabilityFast(const uchar* data)const; double posteriorProbabilityFast(const uchar* data) const;
void prepareClassifier(int rowstep); void prepareClassifier(int rowstep);
private: private:
TLDEnsembleClassifier(const std::vector<Vec4b>& meas,int beg,int end); TLDEnsembleClassifier(const std::vector<Vec4b>& meas, int beg, int end);
static void stepPrefSuff(std::vector<Vec4b> & arr,int pos,int len,int gridSize); static void stepPrefSuff(std::vector<Vec4b> & arr, int pos, int len, int gridSize);
int code(const uchar* data,int rowstep)const; int code(const uchar* data, int rowstep) const;
int codeFast(const uchar* data)const; int codeFast(const uchar* data) const;
std::vector<Point2i> posAndNeg; std::vector<Point2i> posAndNeg;
std::vector<Vec4b> measurements; std::vector<Vec4b> measurements;
std::vector<Point2i> offset; std::vector<Point2i> offset;
int lastStep_; int lastStep_;
}; };
class TrackerProxy{ class TrackerProxy
{
public: public:
virtual bool init( const Mat& image, const Rect2d& boundingBox) = 0; virtual bool init(const Mat& image, const Rect2d& boundingBox) = 0;
virtual bool update(const Mat& image, Rect2d& boundingBox) = 0; virtual bool update(const Mat& image, Rect2d& boundingBox) = 0;
virtual ~TrackerProxy(){} virtual ~TrackerProxy(){}
}; };
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment