1 #ifndef MTF_HOMOGRAPHY_H 2 #define MTF_HOMOGRAPHY_H 4 #include "ProjectiveBase.h" 13 bool corner_based_sampling;
17 bool _normalized_init,
18 bool _corner_based_sampling,
bool _debug_mode);
26 using ProjectiveBase::setCorners;
28 Homography(
const ParamType *params_in =
nullptr);
29 void compositionalUpdate(
const VectorXd& state_update)
override;
31 void cmptInitPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
32 void cmptPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
33 void cmptWarpedPixJacobian(MatrixXd &jacobian_prod,
34 const PixGradT &pix_jacobian)
override;
36 void cmptApproxPixJacobian(MatrixXd &jacobian_prod,
37 const PixGradT &pix_jacobian)
override;
38 void estimateWarpFromCorners(VectorXd &state_update,
const CornersT &in_corners,
39 const CornersT &out_corners)
override;
40 void cmptInitPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
41 const PixGradT &pix_grad)
override;
43 void cmptWarpedPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
44 const PixGradT &pix_grad)
override;
45 void cmptWarpedPixHessian2(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
46 const PixGradT &pix_grad);
47 void cmptApproxPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
48 const PixGradT &pix_grad)
override;
49 void cmptPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
50 const PixGradT &pix_grad)
override;
52 void setCorners(
const CornersT& corners)
override;
53 void estimateWarpFromPts(VectorXd &state_update, vector<uchar> &mask,
54 const vector<cv::Point2f> &in_pts,
const vector<cv::Point2f> &out_pts,
57 void invertState(VectorXd& inv_state,
const VectorXd& state)
override;
59 void updateGradPts(
double grad_eps)
override;
60 void updateHessPts(
double hess_eps)
override;
62 void getInitPixGrad(Matrix2Xd &jacobian_prod,
int pix_id)
override;
63 void getCurrPixGrad(Matrix2Xd &jacobian_prod,
int pix_id)
override;
65 void generatePerturbation(VectorXd &state_update)
override;
66 void compositionalRandomWalk(VectorXd &perturbed_state,
67 const VectorXd &base_state)
override;
68 void compositionalAutoRegression1(VectorXd &perturbed_state, VectorXd &perturbed_ar,
69 const VectorXd &base_state,
const VectorXd &base_ar,
double a = 0.5)
override;
71 void getWarpFromState(Matrix3d &warp_mat,
const VectorXd& ssm_state)
override;
72 void getStateFromWarp(VectorXd &state_vec,
const Matrix3d& warp_mat)
override;
75 bool supportsSPI()
override{
return true; }
83 CornersT disturbed_corners;
Definition: Homography.h:22
Definition: StateSpaceModel.h:35
Definition: Homography.h:8
Definition: SSMEstimatorParams.h:9
base class for all SSMs that can be expressed by homogeneous multiplication with a 3x3 projective tra...
Definition: ProjectiveBase.h:14