<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Hi David,<div><br></div><div>There are 3 code samples of the ICP method in the &quot;/Registration&quot; </div>
<div><br></div><div>directory of the ITK examples.</div><div><br></div><div>The following article in the Insight Journal also has a simple example</div><div><br></div><div>on how do do landmark registration using the kernel transforms,</div>
<div class="im" style="color: rgb(80, 0, 80); "><div><br></div><a href="http://hdl.handle.net/1926/494" target="_blank" style="color: rgb(64, 100, 128); ">http://hdl.handle.net/1926/494</a><div><br></div></div><div><a href="http://hdl.handle.net/1926/494" target="_blank" style="color: rgb(64, 100, 128); "></a>Best regards,</div>
<div><br></div><font color="#888888"><div>Dawood</div><div><br></div><div><br></div><div><br></div></font></span><br><div class="gmail_quote">On Tue, Jul 5, 2011 at 4:42 PM, David Doria <span dir="ltr">&lt;<a href="mailto:daviddoria@gmail.com">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;">Hi Dawood,<br>
<br>
I don&#39;t see a class named anything like IterativeClosestPoint. Do you<br>
have an example of how to register two images given corresponding<br>
landmarks?<br>
<br>
Thanks,<br>
<font color="#888888"><br>
David<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
On Sun, Jul 3, 2011 at 4:19 AM, Dawood Al Masslawi &lt;<a href="mailto:masslawi@gmail.com">masslawi@gmail.com</a>&gt; wrote:<br>
&gt; David,<br>
&gt; You can do a landmark-based registration using the IterativeClosestPoint<br>
&gt; method<br>
&gt; included in the ITK, you can also use the kernel transforms in a<br>
&gt; registration framework<br>
&gt; to do a non-rigid registration.<br>
&gt; If you are to use the kernel transforms note that the Jacobian is not<br>
&gt; implemented in the<br>
&gt; current classes so you can only use them with the 1+1 and Amoeba optimizers<br>
&gt; (or any other<br>
&gt; optimizer that doesn&#39;t need derivation), however you can use an alternative,<br>
&gt; that is a contribution<br>
&gt; made by Rupert Brooks to the Insight Journal<br>
&gt; (<a href="http://hdl.handle.net/1926/494" target="_blank">http://hdl.handle.net/1926/494</a>) which introduced some<br>
&gt; improvements to the kernel transform class and its subclasses, namely<br>
&gt; implementing the Jacobian.<br>
&gt; It&#39;s computation is slow so you should probably use it with high speed<br>
&gt; metrics (e.g. mean square)<br>
&gt; and optimizers. It&#39;s similarly implemented in the Elastix<br>
&gt; (<a href="http://elastix.isi.uu.nl" target="_blank">elastix.isi.uu.nl</a>).<br>
&gt; Also recently I came across another ITK-based implementation in the<br>
&gt; Plastimatch project<br>
&gt; (<a href="http://plastimatch.org" target="_blank">plastimatch.org</a>), their lanmark-based registration supports 3 types of<br>
&gt; Radial Basis Functions,<br>
&gt; Thin-Plate Spline (global registration), Gaussian (infinite support) and<br>
&gt; Wendland (compact support, local<br>
&gt; registration).<br>
&gt; As for the DeformationFieldTransform, I agree. It only seems logical that it<br>
&gt; would support the more general<br>
&gt; transforms comparing to the LandmarkBasedTransformInitializer. In addition<br>
&gt; the DeformationFieldTransform<br>
&gt; has a GetInverse method which might come in handy sometime :)<br>
&gt; Best regards,<br>
&gt; Dawood<br>
&gt;<br>
&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>

&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>

&gt;<br>
&gt;<br>
&gt; Are these the only two classes to do landmark based registration in ITK?<br>
&gt;<br>
&gt; I noticed that LandmarkBasedTransformInitializer can only compute a<br>
&gt; rigid transform while DeformationFieldTransform seem to use a more<br>
&gt; general transform - is this the intended difference?<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; David<br>
</div></div></blockquote></div><br>