[Insight-users] Deformable registration using Multilevel B-Spline

Nicholas Tustison ntustison at gmail.com
Fri Jul 4 15:21:43 EDT 2008


Hi Luis,

I have also written a B-spline control point class (which hasn't been  
uploaded to the IJ, yet) which takes as input an control point image.   
One of the possible outputs is a control point grid with (1/2)^n  
resolution (but the values of the B-spline object remain the same)  
based on the multi-level component of Lee's paper.  I would certainly  
be willing to volunteer my services in integrating it with whatever  
you had in mind.  If you're interested we can discuss the requirements  
during an upcoming t-con.

Nick



On Jul 4, 2008, at 1:21 PM, Luis Ibanez wrote:

>
> Hi Torsten,
>
>
>       Ahhh... in ITK you have to check often   :-)
>
>
> The recently added example:
>
>
>    Insight/Examples/Registration/
>               DeformableRegistration15.cxx
>
>
> illustrates how to do multi-level BSpline.
>
>
> It pretty much follows the procedure that you just described.
>
> That being said, in this example, the process is done "manually".
>
> It will be interesting to package the whole in to a filter.
>
> Time to look at Nicks paper in the Insight Journal....
>
>
>   Regards,
>
>
>      Luis
>
>
>
> -----------------------
> Torsten Rohlfing wrote:
>> Hi --
>> Last time I checked, there was no implementation of the multi-level  
>> B-splines as described in the Lee paper in ITK. The  
>> MultiResolutionImageRegistration classes, as far as I know, only  
>> affect the image resolution, which then also implies multi- 
>> resolution for PDE-based deformation fields, but not for the B- 
>> spline.
>> To get a multi-resolution B-spline, you have three options:
>> 1. Implement the refinement formula as described in Lee: write a  
>> filter that takes a B-spline transform and converts it to another  
>> transform with half the control point spacing and control point  
>> positions determined so that the deformation fields are identical  
>> (formula is given for 2D case in Lee paper; 1D formula is simple to  
>> derive and can be applied in n dimensions successively).
>> 2. Get the itkSerial Transform class from the InsightJournal and  
>> implement a concatenation of successively finer B-spline  
>> transformations as described in Daniel Rueckert's 1999 TMI paper.  
>> It's a little (or a lot, depending on the number of  
>> transformations) slower than refinement, but you have more  
>> flexibility with the refinement, it's potentially more powerful,  
>> and you can make it diffeomorphic by enforcing constraints on each  
>> transformation in the chain, like described in Rueckert's 2006  
>> MICCAI paper.
>> 3. Use a vector image interpolation class from ITK to refine the B- 
>> spline; you basically need to get the control point array as an ITK  
>> image (there's a method for that in the B-spline class), then  
>> refine that image by interpolation, then set the B-spline control  
>> points from the refined image.
>> I'd recommend against option 3. because it's a hack, but it gives  
>> you an idea on how to implement option 1.
>> Best,
>> Torsten
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list