<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.34">
<TITLE>RE: [Insight-users] Deformable registration usingMultilevel        B-Spline</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi Luis and Nick,<BR>
<BR>
in elastix we have implementated two classes helpful for the B-spline deformable transform.<BR>
<BR>
- One class computes settings for the B-spline grid (GridOrigin, GridRegion, GridSpacing, etc) for multiple resolutions, given a final B-spline grid spacing and an upsample schedule similar to that of the image pyramids. So, it can compute any upsampling schedule.<BR>
- The other class does the real upsampling of a B-spline grid given the result of a previous resolution and the desired output (which was computed with the previous class).<BR>
<BR>
We are planning to make an Insight Journal contribution for these helper classes. Meanwhile, you could&nbsp; inspect them when you download the elastix sources from<BR>
<BR>
&nbsp;&nbsp;&nbsp; <A HREF="http://elastix.isi.uu.nl/download.php">http://elastix.isi.uu.nl/download.php</A><BR>
<BR>
and see if they fit your need. The classes can be found in the directory src/Components/Transforms/BSplineTransform (or otherwise src/Common out of my head).<BR>
<BR>
Regards,<BR>
<BR>
Stefan and Marius<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: insight-users-bounces@itk.org on behalf of Nicholas Tustison<BR>
Sent: Fri 7/4/2008 9:21 PM<BR>
To: Luis Ibanez<BR>
Cc: insight-users@itk.org<BR>
Subject: Re: [Insight-users] Deformable registration usingMultilevel&nbsp;&nbsp;&nbsp; B-Spline<BR>
<BR>
Hi Luis,<BR>
<BR>
I have also written a B-spline control point class (which hasn't been&nbsp;<BR>
uploaded to the IJ, yet) which takes as input an control point image.&nbsp;&nbsp;<BR>
One of the possible outputs is a control point grid with (1/2)^n&nbsp;<BR>
resolution (but the values of the B-spline object remain the same)&nbsp;<BR>
based on the multi-level component of Lee's paper.&nbsp; I would certainly&nbsp;<BR>
be willing to volunteer my services in integrating it with whatever&nbsp;<BR>
you had in mind.&nbsp; If you're interested we can discuss the requirements&nbsp;<BR>
during an upcoming t-con.<BR>
<BR>
Nick<BR>
<BR>
<BR>
<BR>
On Jul 4, 2008, at 1:21 PM, Luis Ibanez wrote:<BR>
<BR>
&gt;<BR>
&gt; Hi Torsten,<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ahhh... in ITK you have to check often&nbsp;&nbsp; :-)<BR>
&gt;<BR>
&gt;<BR>
&gt; The recently added example:<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp; Insight/Examples/Registration/<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DeformableRegistration15.cxx<BR>
&gt;<BR>
&gt;<BR>
&gt; illustrates how to do multi-level BSpline.<BR>
&gt;<BR>
&gt;<BR>
&gt; It pretty much follows the procedure that you just described.<BR>
&gt;<BR>
&gt; That being said, in this example, the process is done &quot;manually&quot;.<BR>
&gt;<BR>
&gt; It will be interesting to package the whole in to a filter.<BR>
&gt;<BR>
&gt; Time to look at Nicks paper in the Insight Journal....<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; Regards,<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; -----------------------<BR>
&gt; Torsten Rohlfing wrote:<BR>
&gt;&gt; Hi --<BR>
&gt;&gt; Last time I checked, there was no implementation of the multi-level&nbsp;<BR>
&gt;&gt; B-splines as described in the Lee paper in ITK. The&nbsp;<BR>
&gt;&gt; MultiResolutionImageRegistration classes, as far as I know, only&nbsp;<BR>
&gt;&gt; affect the image resolution, which then also implies multi-<BR>
&gt;&gt; resolution for PDE-based deformation fields, but not for the B-<BR>
&gt;&gt; spline.<BR>
&gt;&gt; To get a multi-resolution B-spline, you have three options:<BR>
&gt;&gt; 1. Implement the refinement formula as described in Lee: write a&nbsp;<BR>
&gt;&gt; filter that takes a B-spline transform and converts it to another&nbsp;<BR>
&gt;&gt; transform with half the control point spacing and control point&nbsp;<BR>
&gt;&gt; positions determined so that the deformation fields are identical&nbsp;<BR>
&gt;&gt; (formula is given for 2D case in Lee paper; 1D formula is simple to&nbsp;<BR>
&gt;&gt; derive and can be applied in n dimensions successively).<BR>
&gt;&gt; 2. Get the itkSerial Transform class from the InsightJournal and&nbsp;<BR>
&gt;&gt; implement a concatenation of successively finer B-spline&nbsp;<BR>
&gt;&gt; transformations as described in Daniel Rueckert's 1999 TMI paper.&nbsp;<BR>
&gt;&gt; It's a little (or a lot, depending on the number of&nbsp;<BR>
&gt;&gt; transformations) slower than refinement, but you have more&nbsp;<BR>
&gt;&gt; flexibility with the refinement, it's potentially more powerful,&nbsp;<BR>
&gt;&gt; and you can make it diffeomorphic by enforcing constraints on each&nbsp;<BR>
&gt;&gt; transformation in the chain, like described in Rueckert's 2006&nbsp;<BR>
&gt;&gt; MICCAI paper.<BR>
&gt;&gt; 3. Use a vector image interpolation class from ITK to refine the B-<BR>
&gt;&gt; spline; you basically need to get the control point array as an ITK&nbsp;<BR>
&gt;&gt; image (there's a method for that in the B-spline class), then&nbsp;<BR>
&gt;&gt; refine that image by interpolation, then set the B-spline control&nbsp;<BR>
&gt;&gt; points from the refined image.<BR>
&gt;&gt; I'd recommend against option 3. because it's a hack, but it gives&nbsp;<BR>
&gt;&gt; you an idea on how to implement option 1.<BR>
&gt;&gt; Best,<BR>
&gt;&gt; Torsten<BR>
&gt;&gt; _______________________________________________<BR>
&gt;&gt; Insight-users mailing list<BR>
&gt;&gt; Insight-users@itk.org<BR>
&gt;&gt; <A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
&gt; _______________________________________________<BR>
&gt; Insight-users mailing list<BR>
&gt; Insight-users@itk.org<BR>
&gt; <A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
<BR>
_______________________________________________<BR>
Insight-users mailing list<BR>
Insight-users@itk.org<BR>
<A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>