[Insight-users] CenteredEuler3DTransform
Dennis Wenzel
wenzeld at att.net
Thu Aug 4 11:07:56 EDT 2005
If you have a 3D transform in which the operations are performed in the
following order:
- offset to center
- rotate about new origin (at center)
- translate
and you optimize for the best fit transform, then you have 9 parameters and
you cannot move the center-offset to the translation. I agree that in the
final 4x4 transform matrix, you can decompose into a rotation component and
a translation component, but how you arrived at that is different. In
performing an optimization, sometimes I am just as concerned about the
meaning of the individual parameters than I am about the final 4x4 transform
that yields the best registration.
But my questions were more about the fact that the CenteredEuler3DTransform
says there are 9 parameters, but it only reports 6 when you call
GetParameters(), and the center-offset is always zero, and I did not see a
Jacobian calculation for the 9 parameters.
Dennis
----- Original Message -----
From: "Karthik Krishnan" <Karthik.Krishnan at kitware.com>
To: <wenzeld at att.net>
Cc: <insight-users at itk.org>
Sent: Thursday, August 04, 2005 9:08 AM
Subject: Re: [Insight-users] CenteredEuler3DTransform
> Dennis,
>
> The paramters returned are 6, The following post should have a few
> answers.
>
> http://public.kitware.com/pipermail/insight-users/2005-July/013868.html
>
> The center for centered transforms (deriving from
> MatrixOffsetTransformBase is stored seperately in the base class ).
>
> On a related note, there is little sense in optimizing both the
> translation and the center. The Centered3DTransform has 5 parameters, [3
> for rotation, Tx, Ty, Tz and the 3 for center ]. Really, you could
> represent rotation about any center Cx, Cy, Cz with an equivalent
> transform that is rotated about the origin [0, 0], the value of the
> translation calculated accordingly. See above post or the SW guide. You
> are just increasing the work of the optimzier by optimizing both center
> and translation.
>
> -karthik
>
> wenzeld at att.net wrote:
>
>>My understanding from the documentation and from looking at the header
>>file for this class is that this transform has 9 parameters for which it
>>tries to solve in the case of using it with an optimizer. These
>>parameters are the three for rotation, the three for the centered offset,
>>and the three for the translation. After running an optimization using
>>this transform, I got only 6 parameters returned instead of 9 and upon
>>inspecting the transform instance in the debugger, I noticed that the
>>centered offset was zero. Is this because the centered offset was
>>incorporated into the translation component? Is the center of rotation
>>really being solved for in the optimzer as I did not see it as part of the
>>jacobian calculation (there is none defined in this class)?
>>
>>Thanks...
>>
>>Dennis
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
More information about the Insight-users
mailing list