boundarypoints.h

来自「VC视频对象的跟踪提取原代码(vc视频监控源码)」· C头文件 代码 · 共 84 行

H
84
字号
/* * Boundary Points.h *  * the ordered set of points on the boundary of an object * */#ifndef __BOUNDARY_POINTS_H__#define __BOUNDARY_POINTS_H__#include "Point2.h"#include "PointVector.h"#include "NagMatrix.h"#include "SplineMatrix.h"namespace ReadingPeopleTracker{class Profile;class BoundaryPoints : public PointVector{private:    SplineMatrix *s_matrices[6];public:        unsigned int anchor_point;        BoundaryPoints() : PointVector()	{	    for (register unsigned int count = 0; count < 6; count++)		s_matrices[count] = NULL;	}        ~BoundaryPoints() {}    BoundaryPoints(unsigned int n) : PointVector(n) {}        BoundaryPoints &operator= (BoundaryPoints &original) // FIXME: !tested --- nts Oct 2001	{	    anchor_point = original.anchor_point;	    PointVector::operator= (original);	    return *this;	}     void setup_default_spline_matrices();    /* smooth the curve by convolving with a Gaussian       standard deviation sd, window_size for convolving */    void gauss_smooth(realno sd, unsigned int window_size = 5);        /* find_best_line - finds best fit line        returns - (1/gradient) , origin_x, origin_y */    void find_best_line(realno &inv_grad, realno &ox, realno &oy);    void find_robust_best_line(realno &inv_grad, realno &ox, realno &oy);        void find_end(Point2& n, Point2& origin);    void find_ends(realno inv_grad, realno ox, realno oy);    void find_end_highest(Point2& n, Point2& origin);        void draw_points(int xlo = 0, int ylo = 0);    void draw_curve(int ox = 0, int oy = 0, int step = 1);        bool filter();    bool convert_to_spline(PointVector *res);  // filter and spline    void to_spline(PointVector *res);          // just spline, no filter     bool find_optimal_spline(Profile *result); // non-uniform optimal spline        // alternative method: calculate a spline from an arbitrary set of Boundary points    // without worrying about speed / efficiency    void calculate_spline(NagVector &u_values, PointVector *data, PointVector *result);        void recenter(realno, realno);private:    static const realno LARGE; // a large number};} // namespace ReadingPeopleTracker#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?