Commit 4c251bd2 authored by Pavel Rojtberg's avatar Pavel Rojtberg

CvLevMarq: add solve method to interface

parent 22b64e2c
...@@ -415,6 +415,7 @@ public: ...@@ -415,6 +415,7 @@ public:
int state; int state;
int iters; int iters;
bool completeSymmFlag; bool completeSymmFlag;
int solveMethod;
}; };
#endif #endif
......
...@@ -58,6 +58,7 @@ CvLevMarq::CvLevMarq() ...@@ -58,6 +58,7 @@ CvLevMarq::CvLevMarq()
iters = 0; iters = 0;
completeSymmFlag = false; completeSymmFlag = false;
errNorm = prevErrNorm = DBL_MAX; errNorm = prevErrNorm = DBL_MAX;
solveMethod = cv::DECOMP_SVD;
} }
CvLevMarq::CvLevMarq( int nparams, int nerrs, CvTermCriteria criteria0, bool _completeSymmFlag ) CvLevMarq::CvLevMarq( int nparams, int nerrs, CvTermCriteria criteria0, bool _completeSymmFlag )
...@@ -113,6 +114,7 @@ void CvLevMarq::init( int nparams, int nerrs, CvTermCriteria criteria0, bool _co ...@@ -113,6 +114,7 @@ void CvLevMarq::init( int nparams, int nerrs, CvTermCriteria criteria0, bool _co
state = STARTED; state = STARTED;
iters = 0; iters = 0;
completeSymmFlag = _completeSymmFlag; completeSymmFlag = _completeSymmFlag;
solveMethod = cv::DECOMP_SVD;
} }
bool CvLevMarq::update( const CvMat*& _param, CvMat*& matJ, CvMat*& _err ) bool CvLevMarq::update( const CvMat*& _param, CvMat*& matJ, CvMat*& _err )
...@@ -314,7 +316,7 @@ void CvLevMarq::step() ...@@ -314,7 +316,7 @@ void CvLevMarq::step()
#else #else
_JtJN.diag() += lambda; _JtJN.diag() += lambda;
#endif #endif
solve(_JtJN, _JtErr, nonzero_param); solve(_JtJN, _JtErr, nonzero_param, solveMethod);
int j = 0; int j = 0;
for( int i = 0; i < nparams; i++ ) for( int i = 0; i < nparams; i++ )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment