[Insight-users] BsplineDeformableTransform and adding control points?

Luis Ibanez luis.ibanez at kitware.com
Fri Jul 10 10:46:52 EDT 2009


Hi Motes,

Thanks for the detailed description of what you are attempting.

You are correct in that, in the ITK implementation of the
BSplineDeformable transform there is not an easy way of
removing or inserting nodes.

The Transform that you are implementing sounds like a good idea.

The trick will be to integrate it with the optimizers.

In particular, the challenge will be that the Optimizer get a
number of arrays that have the size of the number of parameters
in the Transform.

Your transform will have a variable number of parameters,
that is, every time that you insert or remove a node from the
BSpline grid, the number of parameters will change.
Therefore you will have to reset the optimizer arrays.

This is perfectly possible. You just need to keep in mind
when you implement the registration code.

I would suggest that you implement something of the sort:


     A) Choose a BSpline non-uniform grid
     B) Initialize the optimizer
     C) Run the optimizer for N iterations
     D) Analyze where do you need more (or less nodes)
     E) Insert/Remove nodes accordingly
     F) GOTO (B)



Regards,


    Luis



--------------------
motes motes wrote:
> Ok what I am experimenting with is a method where its possible to define 
> a non-uniform grid of B-spline control points both in the initialization 
> but also during the registration process (during the process it might be 
> necessary to add more control points or remove existing control points). 
> This means that in each iteration and the initialization:
> 
> 1) The position of the B-Spline control points can be moved to a new 
> position if this will improve the cost function.
> 
> 2) In areas that need a more fine grained resolution of control points 
> these are added.
> 
> 3) In areas that need a less fine grained resolution of control points 
> these are removed.
> 
> But I get the impression from the examples that its not possible to 
> move, remove or add control points during the registration process, is 
> this correct?
> 
> I have made my own implementation of B-splines where dynamic addition, 
> removal and modification of control points are possible. I am thinking 
> of using this instead, but this requires that the itk registration 
> method is cable of understanding these dynamic updates of control points.
> 
> Am I walking down a dead end path here or is this be possible using ITK 
> and maybe an alternative B-spline implement
> 
> 
> 
> 
> 
> On Wed, Jul 8, 2009 at 3:42 PM, Luis Ibanez <luis.ibanez at kitware.com 
> <mailto:luis.ibanez at kitware.com>> wrote:
> 
>     motes motes wrote:
> 
>         Is it possible to add new control points to the
>         BsplineDeformableTransform between iterations ?
> 
> 
>     ------------------------------------------------
> 
>     Nope,
> 
>     The BSpline Grid parameters (which define how many
>     nodes are used) are defined during the initialization
>     of the Transform.
> 
> 
>     You may have to recreate another Transform as it is
>     done in the Example:
> 
> 
>       Insight/Examples/Registration/
>                  DeformableRegistration15.cxx
> 
> 
> 
> 
>       Regards,
> 
> 
>           Luis
> 
> 
> 


More information about the Insight-users mailing list