4 #include "StateSpaceModel.h" 10 enum class InterpolationType {
11 Bilinear, Biquadratic, Bicubic
13 static const char* toString(InterpolationType data_type);
17 int control_size_x, control_size_y;
19 double control_overlap;
22 InterpolationType interp_type;
27 int _control_size_x,
int _control_size_y,
28 double _control_overlap,
29 InterpolationType _interp_type,
30 bool _static_wts,
bool _debug_mode);
39 typedef SplineParams::InterpolationType InterpolationType;
41 Spline(
const ParamType *params_in =
nullptr);
43 void getCorners(cv::Mat &cv_corners)
override;
44 using StateSpaceModel::getCorners;
46 void additiveUpdate(
const VectorXd& state_update)
override{
47 compositionalUpdate(state_update);
49 void setCorners(
const CornersT& corners)
override;
50 using StateSpaceModel::setCorners;
52 void compositionalUpdate(
const VectorXd& state_update)
override;
53 void setState(
const VectorXd& state)
override;
55 void cmptInitPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
56 void cmptPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
57 void cmptWarpedPixJacobian(MatrixXd &jacobian_prod,
58 const PixGradT &pix_jacobian)
override;
60 void cmptApproxPixJacobian(MatrixXd &jacobian_prod,
61 const PixGradT &pix_jacobian)
override;
63 void cmptInitPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
64 const PixGradT &pix_grad)
override;
66 void cmptWarpedPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
67 const PixGradT &pix_grad)
override;
68 void cmptApproxPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
69 const PixGradT &pix_grad)
override;
70 void cmptPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
71 const PixGradT &pix_grad)
override;
73 void invertState(VectorXd& inv_state,
const VectorXd& state)
override;
75 void updateGradPts(
double grad_eps)
override;
76 void updateHessPts(
double hess_eps)
override;
78 bool supportsSPI()
override{
return true; }
80 void getInitPixGrad(Matrix2Xd &jacobian_prod,
int pix_id)
override;
81 void getCurrPixGrad(Matrix2Xd &jacobian_prod,
int pix_id)
override;
83 void generatePerturbation(VectorXd &state_update)
override;
89 CornersT norm_corners;
90 PtsT init_control_pts, curr_control_pts;
91 VectorXd ctrl_idx, ctrl_idy;
93 unsigned int control_res_x, control_res_y;
94 unsigned int n_control_pts;
97 VectorXd dist_norm_x, dist_norm_y;
98 MatrixXd norm_dist_x, norm_dist_y, interp_wts;
100 double max_dist_x, max_dist_y;
101 void initInterpolationWeights();
102 void updateInterpolationWeights();
103 double getWeight(
double x,
double y);
106 CornersT disturbed_corners;
Definition: StateSpaceModel.h:35
int n_bounding_pts
no. of pts that lie on the region boundary
Definition: Spline.h:96
Definition: StateSpaceModel.h:49