<div>David,</div><div><br></div>You can do a landmark-based registration using the IterativeClosestPoint method<div><br></div><div>included in the ITK, you can also use the kernel transforms in a registration framework</div>
<div><br></div><div>to do a non-rigid registration.</div><div><br></div><div>If you are to use the kernel transforms note that the Jacobian is not implemented in the</div><div><br></div><div>current classes so you can only use them with the 1+1 and Amoeba optimizers (or any other</div>
<div><br></div><div>optimizer that doesn&#39;t need derivation), however you can use an alternative, that is a contribution</div><div><br></div><div>made by Rupert Brooks to the Insight Journal (<span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><a href="http://hdl.handle.net/1926/494">http://hdl.handle.net/1926/494</a><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; ">) which introduced some</span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><br>
</span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; ">improvements to the kernel transform class and its subclasses, namely implementing the Jacobian.</span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><br>
</span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; ">It&#39;s computation is slow so you should probably use it with high speed metrics (e.g. mean square) </span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><br>
</span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; ">and optimizers. It&#39;s similarly implemented in the Elastix (<a href="http://elastix.isi.uu.nl">elastix.isi.uu.nl</a><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; ">).</span></span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; "><br>
</span></span></span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; ">Also recently I came across another ITK-based implementation in the Plastimatch project</span></span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; "><br>
</span></span></span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; ">(<a href="http://plastimatch.org">plastimatch.org</a>), their lanmark-based registration supports 3 types of Radial Basis Functions,</span></span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; "><br>
</span></span></span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; ">Thin-Plate Spline (global registration), Gaussian (infinite support) and Wendland (compact support, local</span></span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; "><br>
</span></span></span></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-family: arial; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "><span class="Apple-style-span" style="font-family: arial, sans-serif; color: rgb(14, 119, 74); line-height: 16px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial; line-height: normal; ">registration).</span></span></span></span></div>
<div><div><br></div><div>As for the DeformationFieldTransform, I agree. It only seems logical that it would support the more general</div><div><br></div><div>transforms comparing to the LandmarkBasedTransformInitializer. In addition the DeformationFieldTransform</div>
<div><br></div><div>has a GetInverse method which might come in handy sometime :)</div><div><br></div><div>Best regards,</div><div><br></div><div>Dawood<br><div><br></div><div><br clear="all">&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;</div>
<div><br></div><div>&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>

</div><div><br></div><div><br></div><div><span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "><pre>Are these the only two classes to do landmark based registration in ITK?

I noticed that LandmarkBasedTransformInitializer can only compute a
rigid transform while DeformationFieldTransform seem to use a more
general transform - is this the intended difference?

Thanks,

David</pre></span></div></div></div>