[Insight-users] DeformationFieldTransform vs LandmarkBasedTransformInitializer

Vincent Garcia vincent.garcia at inria.fr
Thu Jul 7 04:43:16 EDT 2011


Dear all, 

I don't know how works the DeformationFieldTransform class in ITK 4.0, I sincerely didn't have a look on it. 
However, for our work, we couldn't wait for such a class to appear in ITK. 
As I said a few months ago, a displacement field cannot be an itk::Image, it must be a a sub-class of itk::Transform. 
So, we have developed our class named "itkDisplacementFieldTransform". 
I prefer the term "displacement" instead of "deformation" since each element of the field contains a displacement... 

Our class contains a vector field stored internally (private member) into an itk::Image. Each element of the field is a vector giving the displacement. 
Since a vector field is a grid in the world coordinates, it must have a size, a voxel size, and an orientation (like for itk::Image) . 
We defined the method "Transform" which apply the transformation to any point of the space and not only to points situated on the grid. 
This means that you can resample an image using a simple ResampleImageFilter even if the image and the displacement field have different geometries (size, voxel size, orientation). 
This is very interesting if you register two images I0 and I1, and if you want to apply the computed transformation to another image I2 with a totally different geometry ; in my case this happens all the time! 
This class and this way to reasmple images is very convenient and, as a consequence, the class itk::WarpImageFilter becomes useless (for our use at least). 

If you are interested, the class is named "itkDisplacementFieldTransform" and was originally part of the vtkInria3D project : http://www-sop.inria.fr/asclepios/software/vtkINRIA3D/ 
However, the code has been upgraded since then and the latest version is part of the RPI (Registration Programming Interface) project : http://www-sop.inria.fr/asclepios/software/RPI/ 
I'll will upload the latest version of the code this morning since I made some changes this week. 
Once the GetJacobian will be implemented, the class will be finalized this week or next one. 

You should have a look on it :) 

Cheers, 

Vincent Garcia 



----- Original Message -----


From: "Dawood Al Masslawi" <masslawi at gmail.com> 
To: "David Doria" <daviddoria at gmail.com> 
Cc: insight-users at itk.org 
Sent: Wednesday, 6 July, 2011 2:29:27 PM 
Subject: Re: [Insight-users] DeformationFieldTransform vs LandmarkBasedTransformInitializer 


David, Brian, 

We had a discussion a while back about the difference between a 


transform and a warping, 


http://www.itk.org/pipermail/insight-users/2011-May/041192.html 


my understanding is that theoretically transforms map elements 


from the source space to a target space but a warping maps elements 


from the target space to the source space (in most cases). 


This will result in some practical differences between the two, transforms 


will be more complicated since the properties of the input and output 


space are quite likely to have major differences, it seems that the purpose 


of the WarpImageFilter was to make things simpler (?!!), however 


using the DeformationFieldTransform might result in more flexibility. 


It all depends on how the DeformationFieldTransform is implemented. 


ITK-wise as you can see in, 


http://www.itk.org/Doxygen/html/classitk_1_1DeformationFieldTransform.html 


and 


http://www.itk.org/Doxygen/html/classitk_1_1WarpImageFilter.html 


the DeformationFieldTransform supports most common properties 


of other transform filters (although one wonders, could it be used in a 


registration scenario just like other transforms?!!) and all the 


WarpImageFilter does is using the deformation field to back-map the 


pixles. 


Did you see any differences in the output image of either filters? 


Dawood 









On Tue, Jul 5, 2011 at 9:59 PM, David Doria < daviddoria at gmail.com > wrote: 



On Tue, Jul 5, 2011 at 8:42 AM, Dawood Al Masslawi < masslawi at gmail.com > wrote: 
> Hi David, 
> There are 3 code samples of the ICP method in the "/Registration" 
> directory of the ITK examples. 
> The following article in the Insight Journal also has a simple example 
> on how do do landmark registration using the kernel transforms, 
> http://hdl.handle.net/1926/494 
> Best regards, 
> Dawood 

Could you explain the difference between WarpImageFilter and 
DeformationFieldTransform ? 

These seem to do the same thing: 
http://www.itk.org/Wiki/ITK/Examples/Registration/WarpImageFilter 
http://www.itk.org/Wiki/ITK/Examples/Registration/DeformationFieldTransform 

David 


_____________________________________ 
Powered by www.kitware.com 

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html 

Kitware offers ITK Training Courses, for more information visit: 
http://www.kitware.com/products/protraining.html 

Please keep messages on-topic and check the ITK FAQ at: 
http://www.itk.org/Wiki/ITK_FAQ 

Follow this link to subscribe/unsubscribe: 
http://www.itk.org/mailman/listinfo/insight-users 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110707/e3dedf22/attachment.htm>


More information about the Insight-users mailing list