<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) "Image Registration" 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"><<a href="mailto:anja.ende@googlemail.com">anja.ende@googlemail.com</a>></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 "non-rigid",<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>