[Insight-users] Deformable registration usingMultilevel B-Spline

Luis Ibanez luis.ibanez at kitware.com
Sat Jul 5 12:01:26 EDT 2008


Hi Marius,

This is great!,

Should we create a Wiki page for having a more detailed discussion
on the BSpline related classes ?

Could you join the tcon this Friday ?
There is an international number that we can send you.

The phone conference time is Friday 1:pm New York time.
That should be 7pm in the Netherlands (?).


   Please let us know,


     Thanks


        Luis



-----------------------
M.Staring at lumc.nl wrote:
> 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
> 


More information about the Insight-users mailing list