<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>Dear all,<br><br>I don't know how works the DeformationFieldTransform class in ITK 4.0, I sincerely didn't have a look on it.<br>However, for our work, we couldn't wait for such a class to appear in ITK.<br>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.<br>So, we have developed our class named "itkDisplacementFieldTransform".<br>I prefer the term "displacement" instead of "deformation" since each element of the field contains a displacement...<br><br>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.<br>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).<br>We defined the method "Transform" which apply the transformation to any point of the space and not only to points situated on the grid.<br>This means that you can resample an image using a simple&nbsp; ResampleImageFilter even if the image and the displacement field have different geometries (size, voxel size, orientation).<br>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!<br>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).<br><br>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/<br>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/<br>I'll will upload the latest version of the code this morning since I made some changes this week.<br>Once the GetJacobian will be implemented, the class will be finalized this week or next one.<br><br>You should have a look on it :)<br><br>Cheers,<br><br>Vincent Garcia<br><br><br><br><hr id="zwchr"><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;"><b>From: </b>"Dawood Al Masslawi" &lt;masslawi@gmail.com&gt;<br><b>To: </b>"David Doria" &lt;daviddoria@gmail.com&gt;<br><b>Cc: </b>insight-users@itk.org<br><b>Sent: </b>Wednesday, 6 July, 2011 2:29:27 PM<br><b>Subject: </b>Re: [Insight-users] DeformationFieldTransform vs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LandmarkBasedTransformInitializer<br><br><div>David, Brian,</div><div><br></div>We had a discussion a while back about the difference&nbsp;between a&nbsp;<div><br></div><div>transform and a warping,&nbsp;<div><br></div><div><a href="http://www.itk.org/pipermail/insight-users/2011-May/041192.html" target="_blank">http://www.itk.org/pipermail/insight-users/2011-May/041192.html</a></div>
<div><br></div><div><a href="http://www.itk.org/pipermail/insight-users/2011-May/041192.html" target="_blank"></a>my understanding is that&nbsp;theoretically transforms&nbsp;map elements&nbsp;</div><div><br></div><div>from the source space to a target space but a warping maps elements&nbsp;</div>
<div><br></div><div>from the target space&nbsp;to the source space (in most cases).</div><div><br></div><div>This will result in some&nbsp;practical differences&nbsp;between the two, transforms&nbsp;</div><div><br></div><div>will be more&nbsp;complicated since&nbsp;the properties of the input and output&nbsp;</div>
<div><br></div><div>space are&nbsp;quite likely to have&nbsp;major differences, it seems that the&nbsp;purpose&nbsp;</div><div><br></div><div>of&nbsp;the WarpImageFilter was to make things simpler (?!!), however</div><div><br></div><div>using the DeformationFieldTransform might result in more flexibility.</div>
<div><br></div><div>It all depends on how the DeformationFieldTransform is implemented.</div><div><br></div><div>ITK-wise as you can see in,</div><div><br></div><div><a href="http://www.itk.org/Doxygen/html/classitk_1_1DeformationFieldTransform.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1DeformationFieldTransform.html</a></div>
<div><br></div><div>and</div><div><br></div><div><a href="http://www.itk.org/Doxygen/html/classitk_1_1WarpImageFilter.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1WarpImageFilter.html</a></div><div><br></div><div>the DeformationFieldTransform supports most common properties&nbsp;</div>
<div><br></div><div>of other transform&nbsp;filters (although one wonders, could it be used in a</div><div><br></div><div>registration scenario just like other transforms?!!) and all the</div><div><br></div><div>WarpImageFilter does is using the deformation field to back-map the</div>
<div><br></div><div>pixles.</div><div><br></div><div>Did you see any differences in the output image of either filters?</div><div><br></div><div>Dawood</div><div><br></div><div><br></div><div><br></div><div><br></div><div>
<div class="gmail_quote">On Tue, Jul 5, 2011 at 9:59 PM, David Doria <span dir="ltr">&lt;<a href="mailto:daviddoria@gmail.com" target="_blank">daviddoria@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Jul 5, 2011 at 8:42 AM, Dawood Al Masslawi &lt;<a href="mailto:masslawi@gmail.com" target="_blank">masslawi@gmail.com</a>&gt; wrote:<br>
&gt; Hi David,<br>
&gt; There are 3 code samples of the ICP method in the "/Registration"<br>
&gt; directory of the ITK&nbsp;examples.<br>
&gt; The following article in the Insight Journal also has a simple example<br>
&gt; on how do do landmark registration using the kernel transforms,<br>
&gt; <a href="http://hdl.handle.net/1926/494" target="_blank">http://hdl.handle.net/1926/494</a><br>
&gt; Best regards,<br>
&gt; Dawood<br>
<br>
</div>Could you explain the difference between WarpImageFilter and<br>
DeformationFieldTransform ?<br>
<br>
These seem to do the same thing:<br>
<a href="http://www.itk.org/Wiki/ITK/Examples/Registration/WarpImageFilter" target="_blank">http://www.itk.org/Wiki/ITK/Examples/Registration/WarpImageFilter</a><br>
<a href="http://www.itk.org/Wiki/ITK/Examples/Registration/DeformationFieldTransform" target="_blank">http://www.itk.org/Wiki/ITK/Examples/Registration/DeformationFieldTransform</a><br>
<font color="#888888"><br>
David<br>
</font></blockquote></div><br></div></div>
<br>_____________________________________<br>Powered by www.kitware.com<br><br>Visit other Kitware open-source projects at<br>http://www.kitware.com/opensource/opensource.html<br><br>Kitware offers ITK Training Courses, for more information visit:<br>http://www.kitware.com/products/protraining.html<br><br>Please keep messages on-topic and check the ITK FAQ at:<br>http://www.itk.org/Wiki/ITK_FAQ<br><br>Follow this link to subscribe/unsubscribe:<br>http://www.itk.org/mailman/listinfo/insight-users<br></blockquote><br></div></body></html>