<br>Hi Anja,<br><br>The B-Spline deformable registration in ITK is simply using a <br>B-Spline deformable Transform as the Transform in the standard<br>registration framework.<br><br>You may want to study first the standard registration framework.<br>
Most of your questions in this email thread refer actually to the<br>inner workings of the registration framework, and are independent<br>of the type of transform that you use.<br><br>The registration process does not resample the moving image.<br>
(at least not explicitly).  What is does is to compute on-demand<br>the intensities of the Moving image that will correspond to given<br>points of the fixed image.<br><br>In order to understand this better please read<br>
<br>A) Geometric Transformations section of the Software Guide.<br>     This is the section describing all the uses of the Resample<br>     ImageFilter.   This section will answer your questions about<br>     <br>      a) Direction of the transform<br>
      b) How a Moving image is mapped to a Fixed image<br><br><br>B) &quot;Image Registration&quot; chapter.<br>     This describes the inner working of the registration framework.<br><br><br>In Pseudo code, an iteration of the Optimizer in the registration <br>
framework will do the following:<br><br>   1) Take the array of current Transform parameters<br>   2) Initialize the Transform using these parameters<br>   3) Compute the Metric (for example a MeanSquares)<br>       3.1) For Every pixel in the Fixed Image<br>
         3.1.1) Compute the physical coordinates of the<br>                   pixel by taking into account: image origin<br>                   spacing and direction<br>         3.1.2) Use the Transform to map the point from <br>
                    the Fixed image coordinate system to the<br>                    Moving image coordinate system.<br>         3.1.3)  Using the Moving image parameters convert<br>                    the physical coordinates of the mapped point<br>
                    into an image continuous index <br>                    (in the Moving image grid)<br>         3.1.4)  Interpolate the intensity of the Moving image <br>                    at that continuous index position.<br>
          3.1.5) computes the difference between the moving <br>                    image intensity at that point and the fixed <br>                    image intensity at the pixel that we took in <br>                    (3.1.1).   Compute the square, add it to the<br>
                    accumulator.<br>       3.2) Divide the sum in the accumulator by the number<br>               of visited pixels.<br>       <br> At this point the optimizer will analyze the metric value <br>and will decide what parameters of the Transform to test<br>
next.<br><br>As you can see, the Moving image is not explicitly mapped<br>to the Fixed image, however, points from the Fixed image<br>were mapped to the moving image in order to find the <br>moving image intensity at those mapped locations.<br>
<br>Note that in all of the above, the nature of the Transform<br>is irrelevant. We simply need the Transform to provide<br>the functionality of mapping points from the Fixed image<br>coordinate system in to points in the Moving image <br>
coordinate system.<br><br><br>In the case of the BSpline deformable transform, the<br>parameters of the Transform (as explained in the <br>Software Guide) are the collection of components of the<br>displacement vectors associated with each one of the<br>
nodes in the B-Spline grid. In your email you seem to<br>be confusing the points from the Fixed image pixels <br>with the nodes of the BSpline grid. <br><br><br><br>Again,<br><br>Please read the sections of the Software Guide <br>
and let us know if you have further questions,<br><br><br><br>     Thanks<br><br><br><br>             Luis<br><br><br><br>-----------------------------------------------------------------------------------------<br><div class="gmail_quote">
On Sat, Jun 20, 2009 at 2:59 PM, Anja Ende <span dir="ltr">&lt;<a href="mailto:anja.ende@googlemail.com">anja.ende@googlemail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Luis,<br>
<br>
Thanks for the reply. Things are clearer now. When I said &quot;non-rigid&quot;,<br>
I meant mostly registration based on free form deformations (B-splines<br>
for example). I was trying to understand how the moving image will be<br>
transformed before it is compared with the fixed image in the<br>
calculation for similarity metric.<br>
<br>
So, if I understand correctly, the registration process will move the<br>
control points for the b-spline to give a new set of sample points. I<br>
am a little bit confused about what happens after? Do we now<br>
interpolate back from this new sample points to the sample points in<br>
our original image and compute the similarity matrix?<br>
<br>
I guess my doubts are with the registration process itself.<br>
<br>
Thanks,<br>
<font color="#888888"><br>
Anja<br>
</font></blockquote></div><br>