[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