[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