[Insight-users] Deformable registration usingMultilevel B-Spline

M.Staring at lumc.nl M.Staring at lumc.nl
Sat Jul 5 03:53:56 EDT 2008


Hi Luis and Nick,

in elastix we have implementated two classes helpful for the B-spline deformable transform.

- 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.
- 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).

We are planning to make an Insight Journal contribution for these helper classes. Meanwhile, you could  inspect them when you download the elastix sources from 

    http://elastix.isi.uu.nl/download.php

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).

Regards,

Stefan and Marius


-----Original Message-----
From: insight-users-bounces at itk.org on behalf of Nicholas Tustison
Sent: Fri 7/4/2008 9:21 PM
To: Luis Ibanez
Cc: insight-users at itk.org
Subject: Re: [Insight-users] Deformable registration usingMultilevel	B-Spline
 
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

_______________________________________________
Insight-users mailing list
Insight-users at itk.org
http://www.itk.org/mailman/listinfo/insight-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20080705/7fa2d892/attachment-0001.htm>


More information about the Insight-users mailing list