[Insight-users] Deformable registration usingMultilevel B-Spline

Nicholas Tustison ntustison at gmail.com
Sat Jul 5 08:47:34 EDT 2008


Hi Marius, Stefan:

Sounds good to me.  I look forward to the IJ contribution.

Nick


On Jul 5, 2008, at 3:53 AM, <M.Staring at lumc.nl> <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
>
>

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


More information about the Insight-users mailing list