[Insight-users] Deformable registration using Multilevel B-Spline
Luis Ibanez
luis.ibanez at kitware.com
Sat Jul 5 11:53:05 EDT 2008
Nicholas Tustison wrote:
> 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