[Insight-users] questions about affine transform &
CenteredTransformInitializer
Rick Shilling
rickshilling at yahoo.com
Fri Jun 16 11:50:43 EDT 2006
I wanted to verify that the VersorRigid3DTransform object returned from CenteredTransformInitializer methods is consistent between matrix, center, translation and offset.
If:
A =rotation matrix
x0 =center of rotation
T =translation
O =Offset
then I would expect for a VersorRigid3DTransform:
A(x-x0)+T=Ax+O
thus,
O=T-Ax0
Without making method changes to the transform object, results show that after calling:
...
typedef itk::CenteredTransformInitializer< TransformType, ImageType, ImageType > TransformInitializerType;
TransformInitializerType::Pointer initializer = TransformInitializerType::New();
initializer->SetTransform( transform );
initializer->SetFixedImage( importFixedFilter->GetOutput() );
initializer->SetMovingImage( importMovingFilter->GetOutput() );
initializer->MomentsOn();
initializer->InitializeTransform();
std::cout <<transform->GetRotationMatrix();
std::cout <<transform->GetCenter();
std::cout <<transform->GetTranslation();
std::cout <<transform->GetOffset();
...
O~=T-Ax0
Since the itk::transform shows inconsistent data members, how is one of the possible two transforms used for registration? Or is my modeling of
A(x-x0)+T=Ax+O incorrect? Thanks.
Rick
---------------------------------
How low will we go? Check out Yahoo! Messengers low PC-to-Phone call rates.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20060616/49338095/attachment.html
More information about the Insight-users
mailing list