[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