1 #ifndef MTF_SSM_ESTIMATOR_H 2 #define MTF_SSM_ESTIMATOR_H 4 #include "mtf/Macros/common.h" 6 #include <boost/random/mersenne_twister.hpp> 17 int _maxBasicSolutions,
bool _use_boost_rng);
20 virtual int runKernel(
const CvMat* m1,
const CvMat* m2, CvMat* model) = 0;
21 virtual bool runLMeDS(
const CvMat* m1,
const CvMat* m2, CvMat* model,
22 CvMat* mask,
double confidence = 0.99,
int maxIters = 2000,
int maxAttempts = 300);
23 virtual bool runRANSAC(
const CvMat* m1,
const CvMat* m2, CvMat* model,
24 CvMat* mask,
double threshold,
double confidence = 0.99,
int maxIters = 2000,
26 virtual bool refine(
const CvMat*,
const CvMat*, CvMat*,
int) {
return true; }
27 virtual void setSeed(int64 seed);
30 virtual void computeReprojError(
const CvMat* m1,
const CvMat* m2,
31 const CvMat* model, CvMat* error) = 0;
32 virtual int findInliers(
const CvMat* m1,
const CvMat* m2,
33 const CvMat* model, CvMat* error,
34 CvMat* mask,
double threshold);
35 virtual bool getSubset(
const CvMat* m1,
const CvMat* m2,
36 CvMat* ms1, CvMat* ms2,
int maxAttempts = 1000);
37 virtual bool checkSubset(
const CvMat* ms1,
int count);
39 typedef boost::mt19937 BoostRNG;
46 int maxBasicSolutions;
47 bool checkPartialSubsets;
48 const bool use_boost_rng;
57 LevMarq(
int nparams,
int nerrs, CvTermCriteria criteria =
58 cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, DBL_EPSILON),
59 bool completeSymmFlag =
false);
61 void init(
int nparams,
int nerrs, CvTermCriteria criteria =
62 cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, DBL_EPSILON),
63 bool completeSymmFlag =
false);
64 bool update(
const CvMat*& param, CvMat*& J, CvMat*& err);
65 bool updateAlt(
const CvMat*& param, CvMat*& JtJ, CvMat*& JtErr,
double*& errNorm);
69 enum { DONE = 0, STARTED = 1, CALC_J = 2, CHECK_ERR = 3 };
72 cv::Ptr<CvMat> prevParam;
81 double prevErrNorm, errNorm;
83 CvTermCriteria criteria;
86 bool completeSymmFlag;
Levenberg Marquardt Solver for refining estimated SSM paarameters copied from CvLevMarq in calib3d mo...
Definition: SSMEstimator.h:54
Base class for robust estimators for different SSMs adapted from CvModelEstimator2 defined in _modelt...
Definition: SSMEstimator.h:14