1 #ifndef MTF_GRID_TRACKER_CV_H 2 #define MTF_GRID_TRACKER_CV_H 7 #define GTCV_GRID_SIZE_X 10 8 #define GTCV_GRID_SIZE_Y 10 9 #define GTCV_SEARCH_WINDOW_X 10 10 #define GTCV_SEARCH_WINDOW_Y 10 11 #define GTCV_RESET_AT_EACH_FRAME 1 12 #define GTCV_PATCH_CENTROID_INSIDE 0 13 #define GTCV_FB_ERR_THRESH 0 14 #define GTCV_PYRAMID_LEVELS 0 15 #define GTCV_USE_MIN_EIG_VALS 0 16 #define GTCV_MIN_EIG_THRESH 1e-4 17 #define GTCV_MAX_ITERS 30 18 #define GTCV_INPUT_TYPE CV_32FC1 19 #define GTCV_EPSILON 0.01 20 #define GTCV_SHOW_PTS 0 21 #define GTCV_DEBUG_MODE 0 27 int grid_size_x, grid_size_y;
28 int search_window_x, search_window_y;
29 bool reset_at_each_frame;
30 bool patch_centroid_inside;
35 bool use_min_eig_vals;
36 double min_eig_thresh;
49 int _grid_size_x,
int _grid_size_y,
50 int _search_window_x,
int _search_window_y,
51 bool reset_at_each_frame,
bool _patch_centroid_inside,
52 double _fb_err_thresh,
53 int _pyramid_levels,
bool _use_min_eig_vals,
54 double _min_eig_thresh,
int _max_iters,
55 double _epsilon,
int _input_type,
bool _show_pts,
59 int getResX()
const{
return resx; }
60 int getResY()
const{
return resy; }
72 typedef typename SSM::ParamType
SSMParams;
73 typedef typename SSM::EstimatorParams EstimatorParams;
75 GridTrackerCV(
const ParamType *grid_params,
const EstimatorParams *_est_params,
76 const SSMParams *ssm_params);
78 void initialize(
const cv::Mat &corners)
override;
79 void update()
override;
80 void setImage(
const cv::Mat &img)
override;
81 void setRegion(
const cv::Mat& corners)
override;
82 const uchar* getPixMask()
override{
return pix_mask.data(); }
83 int getResX()
override{
return params.grid_size_x; }
84 int getResY()
override{
return params.grid_size_y; }
85 const cv::Mat& getRegion()
override{
return cv_corners_mat; }
86 int inputType()
const override{
return params.input_type; }
87 SSM& getSSM() {
return ssm; }
89 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
95 EstimatorParams est_params;
97 cv::Mat curr_img_in, curr_img, prev_img;
98 cv::Mat curr_pts_mat, prev_pts_mat;
100 std::vector<cv::Point2f> curr_pts, prev_pts;
102 cv::Size search_window;
103 cv::TermCriteria lk_term_criteria;
106 cv::Mat patch_corners;
107 std::vector<uchar> lk_status, pix_mask;
108 std::vector<float> lk_error;
113 cv::Mat curr_img_disp;
115 Matrix2Xd centroid_offset;
117 char* patch_win_name;
119 MatrixXi _linear_idx;
122 bool enable_fb_err_est;
123 std::vector<cv::Point2f> fb_prev_pts;
124 VectorXb fb_err_mask;
125 bool rgb_input, uchar_input;
129 void backwardEstimation();
Definition: StateSpaceModel.h:35
Definition: GridTrackerCV.h:68
GridTrackerCVParams(int _grid_size_x, int _grid_size_y, int _search_window_x, int _search_window_y, bool reset_at_each_frame, bool _patch_centroid_inside, double _fb_err_thresh, int _pyramid_levels, bool _use_min_eig_vals, double _min_eig_thresh, int _max_iters, double _epsilon, int _input_type, bool _show_pts, bool _debug_mode)
decides whether logging data will be printed for debugging purposes;
Definition: GridTrackerCV.h:25
double epsilon
maximum iterations of the GridTrackerCV algorithm to run for each frame
Definition: GridTrackerCV.h:39