[ITK Community] [Insight-users] 4x4 matrix to itkTransform

Vikash Gupta vikash.gupta at inria.fr
Thu Jan 30 16:57:18 EST 2014


Hi Matt, 
Thanks for the links and explanation. Yes it is clear now and the problem is resolved. 

Sincerely
Vikash

----- Original Message -----
> From: "Matt McCormick" <matt.mccormick at kitware.com>
> To: "Vikash Gupta" <vikash.gupta at inria.fr>
> Cc: "insight-users at itk org" <insight-users at itk.org>
> Sent: Thursday, January 30, 2014 5:23:16 PM
> Subject: Re: [ITK Community] [Insight-users] 4x4 matrix to itkTransform
> 
> Hi Vikash,
> 
> To figure this out, start at the AffineTransform Doxygen
> documentation [1].
> 
> Looking at the Inheritance Diagram, we see it inherits from
> MatrixOffsetTransformBase [2].  Looking at the implementation of
> SetParameters in MatrixOffsetTransformBase [3] shows the order of the
> parameters.
> 
> We can verify with some code [4].  The output is:
> 
> matrix4x4: 1 2 3 4
> 5 6 7 8
> 9 10 11 12
> 0 0 0 1
> 
> extendedPoint: [3.3, 2.8, -4.7, 1]
> transformedExtendedPoint: [-1.2, 8.4, 18, 1]
> parameters: [1, 2, 3, 5, 6, 7, 9, 10, 11, 4, 8, 12]
> transform: AffineTransform (0xe89710)
>   RTTI typeinfo:   itk::AffineTransform<float, 3u>
>   Reference Count: 2
>   Modified Time: 16
>   Debug: Off
>   Object Name:
>   Observers:
>     none
>   Matrix:
>     1 2 3
>     5 6 7
>     9 10 11
>   Offset: [4, 8, 12]
>   Center: [0, 0, 0]
>   Translation: [4, 8, 12]
>   Inverse:
>     1 0 0
>     0 1 0
>     0 0 1
>   Singular: 1
> 
> transformedPoint: [-1.2, 8.4, 18]
> 
> 
> And the output file:
> 
> #Insight Transform File V1.0
> #Transform 0
> Transform: AffineTransform_float_3_3
> Parameters: 1 2 3 5 6 7 9 10 11 4 8 12
> FixedParameters: 0 0 0
> 
> Hope this helps,
> Matt
> 
> [1] http://www.itk.org/Doxygen/html/classitk_1_1AffineTransform.html
> [2]
> http://www.itk.org/Doxygen/html/classitk_1_1MatrixOffsetTransformBase.html
> [3]
> http://itk.org/gitweb?p=ITK.git;a=blob;f=Modules/Core/Transform/include/itkMatrixOffsetTransformBase.hxx;h=24bd8d5f0cc64dfdf6b283a37cd8d460802fe2ad;hb=HEAD#l602
> [4] https://gist.github.com/thewtex/8712205
> 
> On Tue, Jan 28, 2014 at 3:43 PM, Vikash Gupta <vikash.gupta at inria.fr>
> wrote:
> > Hi Matt,
> > Thanks for the reply...
> > However in [1] the test.tfm (which I believe is a matrix file) is
> > not there. but I can try to code. Just so that I am clear
> > If the input matrix is
> >
> > a b c d
> > e f g h
> > i j k l
> > 0 0 0 1
> >
> > The parameters in the transform file will look like
> >
> > a b c e f g i j k d h l
> >
> > Am i right ?
> >
> > Thanks
> > Vikash
> >
> > ----- Original Message -----
> >> From: "Matt McCormick" <matt.mccormick at kitware.com>
> >> To: "Vikash Gupta" <vikash.gupta at inria.fr>
> >> Cc: "insight-users at itk org" <insight-users at itk.org>
> >> Sent: Tuesday, January 28, 2014 8:11:31 PM
> >> Subject: Re: [ITK Community] [Insight-users] 4x4 matrix to
> >> itkTransform
> >>
> >> Hi Vikash,
> >>
> >> The Transform of interest can be instantiated and then its values
> >> set
> >> with the "SetParameters" method.  See the transform code for
> >> order.
> >> For an affine transform like the one referenced, note that it is
> >> typically stored as affine matrix + translation, eliminating the
> >> need
> >> for the "0 0 0 1" in the bottom row.  There is also often a center
> >> of
> >> rotation that is stored.
> >>
> >> The transform can then be written to file with the
> >> TransformFileWriterTemplate class [1]
> >>
> >> Hope this helps,
> >> Matt
> >>
> >> [1]
> >> http://www.itk.org/Doxygen/html/classitk_1_1TransformFileWriterTemplate.html
> >>
> >> On Tue, Jan 28, 2014 at 1:27 PM, Vikash Gupta
> >> <vikash.gupta at inria.fr>
> >> wrote:
> >> > Hey everyone
> >> > I am little bit lost like if there is a tool that exist that
> >> > will
> >> > convert a
> >> > 4x4 matrix to a ITKTransform type
> >> >
> >> > For example, essentially
> >> > input format
> >> >
> >> > 0.990242  0.0089482  0.0115564  -55.2129
> >> > -0.00411503  0.978607  0.0120489  -60.1255
> >> > -0.00965018  -0.00686595  0.979628  74.2065
> >> > 0  0  0  1
> >> >
> >> > Output
> >> > #Insight Transform File V1.0
> >> > # Transform 0
> >> > Transform: AffineTransform_double_3_3
> >> > Parameters: -0.997192 0.0283671 -0.0693022 0.0158514 0.984462
> >> > 0.174879
> >> > -0.0731862 -0.173289 0.982148 -0.206132 -33.1051 7.77696
> >> > FixedParameters: 0 0 0
> >> >
> >> >
> >> > Any help  would be really appreciated.
> >> >
> >> > Thanks
> >> > Vikash
> >> >
> >> > _____________________________________
> >> > 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://www.itk.org/mailman/listinfo/insight-users
> >> >
> >> > _______________________________________________
> >> > Community mailing list
> >> > Community at itk.org
> >> > http://public.kitware.com/cgi-bin/mailman/listinfo/community
> >> >
> >>
> 
_____________________________________
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://www.itk.org/mailman/listinfo/insight-users



More information about the Community mailing list