[Insight-users] Re: Non-rigid Registration

Luis Ibanez luis.ibanez at kitware.com
Tue, 09 Mar 2004 16:55:30 -0500


Hi Andy,

ITK doesn't have implemented a straightforward
method for extracting the Affine part of a
deformation field.

The deformation field is much richer in information
than a simple Affine transform.

You could compute the components of the Affine
transform by using the KernelTransform.
http://www.itk.org/Insight/Doxygen/html/classitk_1_1KernelTransform.html

Simply take a number of samples from the deformation
field and generate with them source and targe
landmarks. Feed those in any of the subclasses
of the KernelTransform and compute its matrix.

This transform has the nice property of computing
the Affine part of the desformation.


   For details you can look at the IEEE TMI paper by
   Davis, Khotanzad, Flamig, and Harms,
   Vol. 16, No. 3 June 1997.


Now, note that it is an overkill to use a deformable
registration method if at the end the only thing that
you want to use is the Affine part. You will be computing
hundreds/thousands of parameters, just to reduce them later
to only 12. It will be much simpler to use a basic registration
algorithm with an AffineTransform...


--------------


About using MutualInformation for non-rigid
registration, You can do this right now in ITK.

One option is to use BSpline transform
http://www.itk.org/Insight/Doxygen/html/classitk_1_1BSplineDeformableTransform.html
along with any of the MutualInformation metric classes
available in ITK (Viola Wells, Mattes or Histogram).


and the other is to use the FEMRegistration filter
and in the configuration file select Mutual Information
as metric.




   Regards,



        Luis



-----------------
Andy Eow wrote:

> Hi Luis,
>  
> I'm currently performing a non-rigid registration using 
> DemonsRegistrationFilter to obtain a DeformationField. However, I'd like 
> to recover the affine rotation matrix representation of the deformation, 
> modify this matrix and reapply the affine matrix to the target image. Is 
> this possible within itk? Are there any examples that demonstrate this?
>  
> Also, does itk currently have a non-rigid registration filter based on a 
> mutual information metric?
>  
> Thank you very much.
>  
> Cheers,
> Andy