Discussion:
[ITK-users] Question about LandmarkDisplacementFieldSource
Siming Bayer
2017-08-29 16:09:08 UTC
Permalink
Dear all,

I am trying to use LandmarkDisplacementFieldSource to compute a
displacement field from 2 point sets. Although the 2 point sets are aligned
almost perfectly with thin plate spline - Robust point matching algorithm
(TPS-RPM), the resulting displacement field looks simply wrong. For
example, the displacement field has a high value where I donÂŽt expect any
deformation/displacement.

Does anybody knows the mathematical background of the itk implementation of
LandmarkDisplacementFieldSource? Could anybody tell me the paper? Does any
body knows how many landmarks is meaningful?

best,
Siming
Matt McCormick
2017-08-29 19:26:12 UTC
Permalink
Hi Siming,

To find the references, see the documentation for the KernelSplines:

https://itk.org/Doxygen/html/classitk_1_1KernelTransform.html

The Inheritance Diagram has links to specific splines and they also
have references.


If dealing with two point sets, you may also be interested in the
LandmarkBasedTransformInitializer:

https://itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html


Hope this helps,
Matt
Post by Siming Bayer
Dear all,
I am trying to use LandmarkDisplacementFieldSource to compute a displacement
field from 2 point sets. Although the 2 point sets are aligned almost
perfectly with thin plate spline - Robust point matching algorithm
(TPS-RPM), the resulting displacement field looks simply wrong. For example,
the displacement field has a high value where I don´t expect any
deformation/displacement.
Does anybody knows the mathematical background of the itk implementation of
LandmarkDisplacementFieldSource? Could anybody tell me the paper? Does any
body knows how many landmarks is meaningful?
best,
Siming
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
http://www.kitware.com/products/protraining.php
http://www.itk.org/Wiki/ITK_FAQ
http://public.kitware.com/mailman/listinfo/insight-users
_____________________________________
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.php

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://public.kitware.com/mailman/listinfo/insight-use
Siming Bayer
2017-08-29 19:53:54 UTC
Permalink
Hi Matt,

Thank you for the information.

Since I would like to perform non-rigid image registration, I would like to first compute a displacement field using 2 point set and then deform the image with the displacement field. So LandmarkBasedTransformInitializer is not suitable in my case.


Basically, I extract two point sets from images of vessels (one before non-rigid deformation, one after deformation). Those two point sets are then aligned by using TPS-RPM Algorithm by Chui. For my understanding, the output displacement field from LandmarkDisplacementFieldSource should be the perfect deformation field, with which I can warp the input vessel image with WarpImageFilter. According to the documentation and the code of LandmarkDisplacementFieldSource, it also use Kernel Based Spline (TPS as default) to compute the deformation field from two point sets. But now, the resulting displacement field is quite strange, although the point matching algorithm works fine. I simple have no idea why my implementation produce wrong output displacement field.

So I think, I need to deepen into the details of the KernelTransform implementation.

best,
Siming
Post by Matt McCormick
Hi Siming,
https://itk.org/Doxygen/html/classitk_1_1KernelTransform.html
The Inheritance Diagram has links to specific splines and they also
have references.
If dealing with two point sets, you may also be interested in the
https://itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html
Hope this helps,
Matt
Post by Siming Bayer
Dear all,
I am trying to use LandmarkDisplacementFieldSource to compute a displacement
field from 2 point sets. Although the 2 point sets are aligned almost
perfectly with thin plate spline - Robust point matching algorithm
(TPS-RPM), the resulting displacement field looks simply wrong. For example,
the displacement field has a high value where I don´t expect any
deformation/displacement.
Does anybody knows the mathematical background of the itk implementation of
LandmarkDisplacementFieldSource? Could anybody tell me the paper? Does any
body knows how many landmarks is meaningful?
best,
Siming
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
http://www.kitware.com/products/protraining.php
http://www.itk.org/Wiki/ITK_FAQ
http://public.kitware.com/mailman/listinfo/insight-users
_____________________________________
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.php

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://public.kitware.com/mailman/list
Matt McCormick
2017-08-29 20:13:56 UTC
Permalink
Hi Siming,

That sounds like a good plan.

Other kernel transform may be of interest.

The LandmarkBasedTransformInitializer can also be used for non-rigid
image registration by generating a b-spline transformation.

Hope this helps,
Matt.
Post by Siming Bayer
Hi Matt,
Thank you for the information.
Since I would like to perform non-rigid image registration, I would like to first compute a displacement field using 2 point set and then deform the image with the displacement field. So LandmarkBasedTransformInitializer is not suitable in my case.
Basically, I extract two point sets from images of vessels (one before non-rigid deformation, one after deformation). Those two point sets are then aligned by using TPS-RPM Algorithm by Chui. For my understanding, the output displacement field from LandmarkDisplacementFieldSource should be the perfect deformation field, with which I can warp the input vessel image with WarpImageFilter. According to the documentation and the code of LandmarkDisplacementFieldSource, it also use Kernel Based Spline (TPS as default) to compute the deformation field from two point sets. But now, the resulting displacement field is quite strange, although the point matching algorithm works fine. I simple have no idea why my implementation produce wrong output displacement field.
So I think, I need to deepen into the details of the KernelTransform implementation.
best,
Siming
Post by Matt McCormick
Hi Siming,
https://itk.org/Doxygen/html/classitk_1_1KernelTransform.html
The Inheritance Diagram has links to specific splines and they also
have references.
If dealing with two point sets, you may also be interested in the
https://itk.org/Doxygen/html/classitk_1_1LandmarkBasedTransformInitializer.html
Hope this helps,
Matt
Post by Siming Bayer
Dear all,
I am trying to use LandmarkDisplacementFieldSource to compute a displacement
field from 2 point sets. Although the 2 point sets are aligned almost
perfectly with thin plate spline - Robust point matching algorithm
(TPS-RPM), the resulting displacement field looks simply wrong. For example,
the displacement field has a high value where I don´t expect any
deformation/displacement.
Does anybody knows the mathematical background of the itk implementation of
LandmarkDisplacementFieldSource? Could anybody tell me the paper? Does any
body knows how many landmarks is meaningful?
best,
Siming
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
http://www.kitware.com/products/protraining.php
http://www.itk.org/Wiki/ITK_FAQ
http://public.kitware.com/mailman/listinfo/insight-users
_____________________________________
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.php

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://
Siming Bayer
2017-08-29 20:17:09 UTC
Permalink
Thank you Matt !

best,
Siming
Post by Matt McCormick
LandmarkBasedTransformInitializer
Loading...