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

Luis Ibanez luis.ibanez at kitware.com
Wed Apr 30 16:28:36 EDT 2008


Hi Feng,

Could you select a smaller set of landmarks that will still illustrate
the problem that you are encountering ?

In this way your attachment will make it to the mailing list.


--

About your concerns regarding the attenuation of the Kernel with respect
to the distance, please not that what is computed in the Method:
ComputeDeformationContribution() in the KernelTransform family, is the
G-matrix from equation (4) in the paper:

   "A Physics-Based Coordinate Transformation for 3-D Image Matching"
   by Davis, Khotanzad, Flamig, and Harms,
   IEEE TMI Vol. 16, No. 3 June 1997.


Matrix G is later use in the Method ComputeWMatrix() for solving
the following equation:

                 W = L^-1 . Y

Where

Y = the displacement among landmarks
W = Spline coefficients

L = is a matrix where G is a submatrix
G = is the function that we are computing in ComputeG

Since the coefficients W are use for mapping points in the
Transform, the values of G end up being used in their
inverse form. Which mean that the factors:

         r^2

and

         r^2 . log (r)

end up in the denominator of the contributions to the
deformation field.


See the calls to:

    SVDSolverType svd( this->m_LMatrix, 1e-8 );
    this->m_WMatrix = svd.solve( this->m_YMatrix );

in lines 206,207 of itkKernelTransform.txx


To put it short, the values computed in the G-matrix
are going to be used, in the form of G-inverse when
the effect of the Kernel is used for computing the
deformation field.


I would suggest you to play with the example:


   Insight/Examples/Registration/ThinPlateSplineWarp.cxx

and to call it with the following parameters:


ThinPlateSplineWarp  LandmarkWarping3Landmarks1.txt
    brainweb165a10f17.mha deformedImage.mha deformationField.mha


where

brainweb165a10f17.mha can be found in:
http://public.kitware.com/pub/itk/Data/BrainWeb/

and

LandmarkWarping3Landmarks1.txt can be found in
   Insight/Examples/Data/


Try this standard case first, and once you get it to work,
then you can move to apply the same method to your
images.



    Regards,


        Luis


-----------------
feng yang wrote:
> Hi, Luis,
>    I have sent email to the Insight-users list several days ago,but just 
> now I search in the mailing list, and there isn't the lettre I have 
> sent.Because the attaching files are too big?
>  
>    My input is just the Landmark of a heart vector field(I have deleted 
> the part for reading the input image and get the deformed image in the 
> ThinPlateSplineWarp.cxx,because I am not care about it), and the output 
> is the deformation field.
>     I attached you the input file and the ThinPlateSplineWarp.cxx I used 
> in my project. But it failed, so this time I just interpret the input 
> file and output file.The input file is the LandMark.txt,which includes 
> original coordinates and the terminal coordinates of the deformation.The 
> Landmark have located the heart in a local region,so it doesn't have the 
> problem "the landmarks are not located in space at the positions that 
> you expect them to be with respect to the image."
>     In addition, I thought the TPS transform will tend to zero when the 
> distance tend to infinity,because for 3D TPS, the sum of the wi*r will 
> be wero smaller as the pixel is farther from the original Landmark. But 
> I don't think it's true for the 2D TPS, because the sum of the 
> wi*r^2*logr will be larger as the pixel is farther from the original 
> Landmark. Is this a bug for the 2D TPS?
>  
> The best way is to send the landMark.txt and mytps.cxx to you, is there 
> any method to do this?(Because the attached files are larger than 40k)
>  
> Thanks!
>  
> Feng


More information about the Insight-users mailing list