CvLevMarq infinite loop due to lambdaLg10 (Patch #1839)


Added by João Lima almost 13 years ago. Updated almost 13 years ago.


Status:Done Start date:2012-04-23
Priority:Normal Due date:
Assignee:João Lima % Done:

100%

Category:calibration, 3d
Target version:2.4.0
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

Description

CvLevMarq::update and CvLevMarq::updateAlt methods (in calib3d/src/calibration.cpp) increments lambdaLg10 until errNorm <= prevErrNorm. If the condition never happens, it causes an infinite loop, since the number of iterations (iters) is never incremented. A solution is to set an upper bound to lambdaLg10 (I have set it to 16). The patch can be found attached.


calibration.cpp.patch (1.3 kB) João Lima, 2012-04-23 04:50 am


Associated revisions

Revision ad8258f8
Added by Vadim Pisarevsky almost 13 years ago

avoid infinite loop in CvLevMarq (thanks to João Lima for the patch; ticket #1839)

Revision 06f6f74e
Added by Roman Donchenko over 11 years ago

Merge pull request #1839 from pmiecielica:memory_leaks

History

Updated by Vadim Pisarevsky almost 13 years ago

thanks! your patch was applied in r8178

Updated by Vadim Pisarevsky almost 13 years ago

  • Status changed from Open to Done

Also available in: Atom PDF