[Insight-users] some questions with the ThinPlateSplineWarp.cxx

Luis Ibanez luis.ibanez at kitware.com
Tue Apr 22 13:21:36 EDT 2008


Hi Feng,


You are right in that the kernel of the transform should tend to zero
when the distance tend to infinity.

What may be happening in your case is that the landmarks are not located
in space at the positions that you expect them to be with respect to the
image.

For example, if your image has a non-null origin, then there will be
a translation between the position of the landmarks, and the pixels
on which they will fall in the image. If you happen to have displaced
landmarks outside of the image, that could explain the larger
deformations that you are observing at the border of the image.


What is the origin of your image ?

What parameters are you using for calling the ThinPlateSplineWarp.cxx
example ?

Could you post somewhere the web the files that you are passing
as input ?


   Please let us know,


      Thanks


         Luis


------------------
feng yang wrote:
> hi,Luis,
> Thanks very much for your reply!
> I have noticed the ThinPlateR2LogRSplineKernelTransform 
> <http://www.itk.org/Insight/Doxygen/html/classitk_1_1ThinPlateR2LogRSplineKernelTransform.html> just 
> this morning,and I have done the experiments with it as well as with 
> ThinPlateSplineTransform using the same image.But the results are almost 
> the same.I don't know why there are the same results with the different 
> GMatrix.
> In addition, I still have the question:
> According to the ThinPlateSpline theory, the farther the pixel distant 
> from the original Landmark,the smaller the deformation will be (This is 
> because the sum of the wi*r will be smaller).So that the deformation at 
> infinity will be zero.
> But when I can use the ThinPlateSplineWarp.cxx to get the deformation 
> field, the deformation field is bigger in the edge than in the centre. 
> Can you help me?
>  
> feng
> 
> 
>  
> 2008/4/21, Luis Ibanez <luis.ibanez at kitware.com 
> <mailto:luis.ibanez at kitware.com>>:
> 
> 
>     Hi Feng,
> 
>     Thanks for your comments regarding this example.
> 
> 
>     Please note that ITK provides multiple implementations
>     of KernelTransforms, all of them deriving from the class:
>     http://www.itk.org/Insight/Doxygen/html/classitk_1_1KernelTransform.html
> 
>     It seems that you are interested in using the class:
>     http://www.itk.org/Insight/Doxygen/html/classitk_1_1ThinPlateR2LogRSplineKernelTransform.html
> 
>     instead of the transform class:
>     http://www.itk.org/Insight/Doxygen/html/classitk_1_1ThinPlateSplineKernelTransform.html
> 
>     that is featured in that example.
> 
> 
> 
>     You can therefore, simply change the #include of the header file,
>     and the class name in the typedef statement that instantiates the
>     type of the transform.
> 
> 
>     Please let us know if you have any further questions.
> 
> 
>        Thanks
> 
> 
>            Luis
> 
> 
> 
>     ---------------------
>     feng yang wrote:
>      > hi,Luis,
>      >
>      > I am trying to get the deformation field from a Landmark file
>     using the
>      > ThinPlateSpline transform.But I discover a problem,: in the
>      > itkThinPlateSplineKernelTransform.txx, the G Matrix is gotten as
>      > :"GMatrix[i][i] = r". This is true for the 3D image,but for the
>     2D image
>      > ,the G matrix should be:GMatrix[i][i]=r^2*log(r^2),which I got
>     from the
>      > paper:"Thin-Plate Spline Approximation for image
>     registration".However,
>      > G matrix is gotten as :"GMatrix[i][i] = r" for all the dimenson
>     image.
>      > So the itkThinPlateSplineKernelTransform is just useful for 3D
>     image? Am
>      > I right or I have made some 
>     misunderstand?
>      >
>      > Thank you very much!
>      >
>      > feng
> 
> 


More information about the Insight-users mailing list