4 #include "ProjectiveBase.h" 5 #include "SSMEstimator.h" 6 #include "SSMEstimatorParams.h" 12 int pt_based_sampling;
15 bool _normalized_init,
int pt_based_sampling,
24 int runKernel(
const CvMat* m1,
const CvMat* m2, CvMat* model)
override;
25 bool refine(
const CvMat* m1,
const CvMat* m2,
26 CvMat* model,
int maxIters)
override;
28 void computeReprojError(
const CvMat* m1,
const CvMat* m2,
29 const CvMat* model, CvMat* error)
override;
37 ASRT(
const ParamType *params_in =
nullptr);
38 void setCorners(
const CornersT& corners)
override;
39 using ProjectiveBase::setCorners;
41 void setState(
const VectorXd &ssm_state)
override;
42 void compositionalUpdate(
const VectorXd& state_update)
override;
44 void getInitPixGrad(Matrix2Xd &ssm_grad,
int pix_id)
override;
46 void getCurrPixGrad(Matrix2Xd &ssm_grad,
int pix_id)
override {
47 getInitPixGrad(ssm_grad, pix_id);
49 void cmptInitPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override;
51 void cmptPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &am_jacobian)
override{
52 cmptInitPixJacobian(jacobian_prod, am_jacobian);
54 void cmptApproxPixJacobian(MatrixXd &jacobian_prod,
const PixGradT &pix_jacobian)
override;
55 void cmptWarpedPixJacobian(MatrixXd &jacobian_prod,
56 const PixGradT &pix_grad)
override;
58 void cmptInitPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
59 const PixGradT &pix_grad)
override;
61 void cmptPixHessian(MatrixXd &pix_hess_ssm,
const PixHessT &pix_hess_coord,
62 const PixGradT &pix_grad)
override {
63 cmptInitPixHessian(pix_hess_ssm, pix_hess_coord, pix_grad);
65 void cmptWarpedPixHessian(MatrixXd &d2I_dp2,
const PixHessT &d2I_dw2,
66 const PixGradT &dI_dw)
override;
68 void estimateWarpFromCorners(VectorXd &state_update,
const Matrix24d &in_corners,
69 const Matrix24d &out_corners)
override;
70 void estimateWarpFromPts(VectorXd &state_update, vector<uchar> &mask,
71 const vector<cv::Point2f> &in_pts,
const vector<cv::Point2f> &out_pts,
73 void updateGradPts(
double grad_eps)
override;
74 void updateHessPts(
double hess_eps)
override;
76 void applyWarpToCorners(Matrix24d &warped_corners,
const Matrix24d &orig_corners,
77 const VectorXd &state_update)
override;
78 void applyWarpToPts(Matrix2Xd &warped_pts,
const Matrix2Xd &orig_pts,
79 const VectorXd &state_update)
override;
81 void generatePerturbation(VectorXd &perturbation)
override;
83 void getWarpFromState(Matrix3d &warp_mat,
const VectorXd& ssm_state)
override;
84 void getStateFromWarp(VectorXd &state_vec,
const Matrix3d& warp_mat)
override;
87 bool supportsSPI()
override{
return true; }
93 cv::Mat estimateASRT(cv::InputArray _points1, cv::InputArray _points2,
95 int estimateASRT(
const CvMat* in_pts,
const CvMat* out_pts,
Anisotropic Scaling, Rotation and Translation.
Definition: ASRT.h:34
Definition: StateSpaceModel.h:35
Definition: SSMEstimatorParams.h:9
Base class for robust estimators for different SSMs adapted from CvModelEstimator2 defined in _modelt...
Definition: SSMEstimator.h:14
base class for all SSMs that can be expressed by homogeneous multiplication with a 3x3 projective tra...
Definition: ProjectiveBase.h:14