CvLevMarq: add solve method to interface
This commit is contained in:
parent
22b64e2c28
commit
4c251bd260
@ -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()
|
|||||||
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
|
|||||||
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()
|
|||||||
#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++ )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user