No announcement yet.


This topic is closed.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Levenberg-Marquardt


    here is my trail to separate the problem I have with Marquardt:

    Franted I have a vertebra with some defined points and an image of the ver-
    tebra, e.g.CT. The corresponding points on the patient I measure with an opto-
    electrical pointer.
    So I have associated points in two different coordinate systems.

    If we want to use the data, we have to fit one coordinate system into the other
    with a transformation.

    And there is the little difficulty, we have measurement errors and coefficient
    with 3 independent variables (x,y,z). In a 2 dimensional plane, we have to
    solve one polynomial function 2. order, but in the 3D room we have a 3x3 matrix
    for the rotation and 3 translations.

    With the analytical and numerical methods I know, I only can solve linear or
    nonlinear equation systems I have built from the polynoms. The Levenberg-
    Marquardt algorithm from Numerical Recipes in C does exactly this, but only
    for a scalar not for pointvectors.

    How can i use the LM algo when I have, instead of the polynom, a matrix, a
    matrix like

    | R t |
    M = | |
    | 0 1 |

    | cosf*cosg -sinf*cosg sing |
    R = | cosf*sing*sinh+sinf*cosh -sinf*sing*sinh+cosf*cosh -cosg*sinh |
    | -cosf*sing*cosg+sinf*sinh sinf*sing*sinh+cosf*sinh cosg*cosh |

    where the solution shoud be y=Mx and y,x are vectors for one point in each
    3D system and M ist the transformation matrix ??

    My further question is, has somebody written such an algorithm in C ore C++ ???

    Thank you for your help.

    | Michael Liebschner | Tel: +41 31 632 8679 |
    | M.E.M. Inst. for Biomechanics | Fax: +41 31 381 0259 |
    | University of Bern | Internet |
    | Murtenstr. 35, P.O.Box 30 | |
    | CH-3010 Bern, Switzerland | |