[Insight-users] modify transformation parameters by using itkBSplineDeformableTransform

Luis Ibanez luis.ibanez at kitware.com
Tue May 25 10:37:40 EDT 2010


Hi Xi,

One way to implement this transform is to have a collection of:

1) Spatial Objects + Transform
2) Landmarks + ThinPlateSplines

(as Vincent suggested).


Here is how it could work:

A) You create a new Transform class.

B) This transform class has as member
    variables

    * an array of N  Spatial Objects
    * an array of N  Translation Transforms

   The Spatial Objects are associated one-to-one
   to the translation transforms.

   A Spatial Object in ITK is essentially an
   object that responds to the question:

     "Is point P inside or outside of you"

   In the new transform, when implementing the
   TransformPoint( P ) method you will probe
   the incoming point P against each one of the
   spatial objects. If you find that point P is inside
   of Spatial Object # 5, then you will apply to this
   point the corresponding Translation Transform #5.

   If point P is not inside any of the SpatialObjects,
   then you will transform it by the ThinPlateSpline
   KernelTransform defined by the landmarks.


C)  The Spatial Objects enable you to define the
      regions of space where the Translation transform
      is valid (via geometric figures, or even an
      arbitrary image binary mask).


D)   The landmarks to be used, will ideally be placed
       in the boundaries of the Spatial Objects, and
       in this way, they will make the Transform behave
       as an elastic material in between rigid regions.



   Regards,


           Luis


---------------------------------------------------------
On Tue, May 18, 2010 at 2:45 AM, Xi Liang <liangxi1986317 at hotmail.com> wrote:
> Hi Luis,
> I walk a big circle and then back to the start point, to do a transformation
> that does translation is certain area and bspline deformation in other area.
> You suggest there is better way to do this, what is your suggestion? My
> input would be a bspline transformation coefficient parameters, and a image
> that the transformation will be applied on, and a mask on rigid area.
>
> 1) If you want to implement a Transform that behaves as
>    a Translation (or Rigid) transform in some regions and
>    as Deformable in others, there are better ways of
>    implementing such class, than fiddling with the parameters
>    of the BSplineDeformable transfrom.
>
>
> On 10 May 2010 07:50, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>
>> Hi Xi,
>>
>>
>> 1) If you want to implement a Transform that behaves as
>>    a Translation (or Rigid) transform in some regions and
>>    as Deformable in others, there are better ways of
>>    implementing such class, than fiddling with the parameters
>>    of the BSplineDeformable transfrom.
>>
>> 2) But, just to answer your question. The parameter array
>>    of the BSpline transform has the components of the
>>    deformation vectors at every node of the BSpline grid.
>>
>>    Given a BSpline grid with N nodes in 3D, you will have
>>
>>                          3 x N        parameters
>>
>>    and they are arranged as:
>>
>>      X1,X2,X3....... Xn,  Y1,Y2,Y3.....YN,...Z1, Z2, Z3,... ZN
>>
>>
>> 3) You can change those parameters manually.
>>    Simply have to figure out which BSpline nodes
>>    are on top of the regions for which you want to
>>    allow only Translations, and change those
>>    accordingly.
>>
>>
>>
>>
>>   Regards,
>>
>>
>>       Luis
>>
>>
>>
>> ---------------------------------------------
>> On Wed, May 5, 2010 at 6:58 AM, Xi Liang <liangxi1986317 at hotmail.com>
>> wrote:
>> > Dear all,
>> > I want to change the some control point parameters got by running
>> > registration by using itkBSplineDeformableTransform.h. The reason is to
>> > manually modify a set of control points such that only translation is
>> > applied on the corresponding regions. The question I would like to ask
>> > is
>> > whether this should be done manually, or we have a filter to change
>> > those
>> > parameters?
>> > If I have to do this manually, I will have to understand of the format
>> > of
>> > parameters. I understand the number of parameters get
>> > from itkBSplineDeformableTransform is ImageDimension *
>> > (numberOfGridNodesInOneDimension + BsplineOrder). Which value is for
>> > lower/upper borders, and which are for nodes? I think I will only need
>> > to
>> > modify the node values to enforce the translation transformations.
>> > This method is introduced by Tanner in Volume and Shape Preservation of
>> > Enhancing Lesions when applying nonrigid registration to a time series
>> > of
>> > contrast enhancing MR breast Images. It couples the control points of a
>> > bspline deformation to enforce rigidity on certain structures.
>> > Kind regards,
>> > Xi
>> >
>> >
>> > _____________________________________
>> > Powered by www.kitware.com
>> >
>> > Visit other Kitware open-source projects at
>> > http://www.kitware.com/opensource/opensource.html
>> >
>> > Kitware offers ITK Training Courses, for more information visit:
>> > http://www.kitware.com/products/protraining.html
>> >
>> > Please keep messages on-topic and check the ITK FAQ at:
>> > http://www.itk.org/Wiki/ITK_FAQ
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://www.itk.org/mailman/listinfo/insight-users
>> >
>> >
>>
>
>


More information about the Insight-users mailing list