[Insight-users] Deformable registration using Multilevel B-Spline

Luis Ibanez luis.ibanez at kitware.com
Sat Jul 5 11:58:50 EDT 2008


Hi Nick,

This is great!

Yes, let's talk about this class at the tcon.


  Thanks for volunteering to contribute this new class.


       Luis


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