[Insight-users] Rigid Registration
Luis Ibanez
luis . ibanez at kitware . com
Tue, 15 Jul 2003 14:31:05 -0400
Hi Ravi,
1) The itkEuler3DRigidTransform does not use versors
for representing the rotation. It uses three angles
to be applied in sequence for rotating around the
coordinate axis.
(There was a Documentation bug on the header,
that has been fixed now).
http://www . itk . org/cgi-bin/cvsweb . cgi/Insight/Code/Common/itkEuler3DTransform . h?cvsroot=Insight
These three angles are not normalized, as you may
expect if they were the component of a Versor.
The angles are using radians as units.
2) The settings of the image origin only have to be
done at the beginning of the registration.
(e.g. before invoking
registrationMethod->StartRegistration()).
3) Please pay attention to the optimizer scales.
Since the 6 parameters of the transform have very
different scales, it is important to compensate for
their difference in dynamic range.
The angles will be expressed in radians, henceforth
they will be in the range [ -3.14 : 3.14 ], while
the translations are expected to be in the range of
half the image extent (in millimeters).
4) FYI: Note that Versors are unit quaternions.
They only have three components. The components
satisfy the condition
x^2 + y^2 + z^2 = sin^2( angle / 2 )
and a vector formed with componenets (x,y,z) is
parallel to the axis of rotation.
Versors represent pure rotations in 3D, while
Quartenions represent rotation and scaling in 3D.
Regards,
Luis
-------------------
ravi sharma wrote:
> According to your suggestions I have used Euler3D
> Rigid transform.The first 3 parameters are Versors.I
> can get the images registered for translations but for
> rotations it doesnot work.I gave set the origin of
> both images at center of images using
> ChangeInformationImageFilter.Does this have to be done
> only one at start of registraton???
> Also my versor parameters come out to be
> {-2.07,0.56,0.003}.Are the versors not
> normalized...How can this happen because for versors
> x*x+y*y+z*z+w*w=1.
> What could be wrong??
>