4 #include "ProjectiveBase.h" 10 int pt_based_sampling;
13 bool _normalized_init,
int _pt_based_sampling,
23 Affine(
const ParamType *params_in =
nullptr);
25 using ProjectiveBase::setCorners;
26 void setCorners(
const CornersT &corners)
override;
28 void getInitPixGrad(Matrix2Xd &ssm_grad,
int pix_id)
override;
30 void getCurrPixGrad(Matrix2Xd &ssm_grad,
int pix_id)
override {
31 getInitPixGrad(ssm_grad, pix_id);
33 void cmptInitPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
35 void cmptPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override{
36 cmptInitPixJacobian(jacobian_prod, am_jacobian);
38 void cmptApproxPixJacobian(MatrixXd &jacobian_prod,
39 const PixGradT &pix_jacobian)
override;
40 void cmptWarpedPixJacobian(MatrixXd &jacobian_prod,
41 const PixGradT &pix_jacobian)
override;
43 void cmptInitPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
44 const PixGradT &pix_grad)
override;
46 void cmptPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
47 const PixGradT &pix_grad)
override {
48 cmptInitPixHessian(pix_hess_ssm, pix_hess_coord, pix_grad);
50 void cmptWarpedPixHessian(MatrixXd &_d2I_dp2,
const PixHessT &_d2I_dw2,
51 const PixGradT &dI_dw)
override;
53 void compositionalUpdate(
const VectorXd& state_update)
override;
54 void estimateWarpFromCorners(VectorXd &state_update,
const CornersT &in_corners,
55 const CornersT &out_corners)
override;
57 void estimateWarpFromPts(VectorXd &state_update, vector<uchar> &mask,
58 const vector<cv::Point2f> &in_pts,
const vector<cv::Point2f> &out_pts,
61 void invertState(VectorXd& inv_state,
const VectorXd& state)
override;
62 void updateGradPts(
double grad_eps)
override;
63 void updateHessPts(
double hess_eps)
override;
65 void setState(
const VectorXd &ssm_state)
override;
66 void applyWarpToCorners(CornersT &warped_corners,
const CornersT &orig_corners,
67 const VectorXd &state_update)
override;
68 void applyWarpToPts(Matrix2Xd &warped_pts,
const Matrix2Xd &orig_pts,
69 const VectorXd &state_update)
override;
71 void getWarpFromState(Matrix3d &warp_mat,
const VectorXd& ssm_state)
override;
72 void getStateFromWarp(VectorXd &state_vec,
const Matrix3d& warp_mat)
override;
74 void generatePerturbation(VectorXd &perturbation)
override;
75 void compositionalRandomWalk(VectorXd &perturbed_state,
76 const VectorXd &base_state)
override;
77 void additiveRandomWalk(VectorXd &perturbed_state,
78 const VectorXd &base_state)
override;
79 void additiveAutoRegression1(VectorXd &perturbed_state, VectorXd &perturbed_ar,
80 const VectorXd &base_state,
const VectorXd &base_ar,
double a = 0.5)
override;
83 bool supportsSPI()
override{
return true; }
89 Vector6d stateToGeom(
const Vector6d &state);
90 Vector6d geomToState(
const Vector6d &geom);
Definition: StateSpaceModel.h:35
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