X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkTransformUtilities.h;h=a6fdd8c6a33f2670d9d665896d458f9cb1c7462c;hb=39562adceed3b608834959f2ed079b945187bb22;hp=c8d100c30c7e405e26fc798d81eadd45c4a75dc5;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git diff --git a/common/clitkTransformUtilities.h b/common/clitkTransformUtilities.h index c8d100c..a6fdd8c 100644 --- a/common/clitkTransformUtilities.h +++ b/common/clitkTransformUtilities.h @@ -1,10 +1,27 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://www.centreleonberard.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +===========================================================================**/ + #ifndef CLITKTRANSFORMUTILITIES_H #define CLITKTRANSFORMUTILITIES_H - #include "itkMatrix.h" #include "itkArray.h" #include "itkPoint.h" -#include "clitkIOCommon.h" +#include "clitkImageCommon.h" #include "clitkCommon.h" @@ -14,9 +31,12 @@ namespace clitk //Declarations //============================================================================ itk::Matrix GetForwardAffineMatrix2D(itk::Array transformParameters); - itk::Matrix GetBackwardAffineMatrix2D(itk::Array transformParameters); itk::Matrix GetForwardAffineMatrix3D(itk::Array transformParameters); + + itk::Matrix GetBackwardAffineMatrix2D(itk::Array transformParameters); itk::Matrix GetBackwardAffineMatrix3D(itk::Array transformParameters); + template itk::Matrix GetBackwardAffineMatrix(itk::Array transformParameters); + itk::Matrix GetRotationMatrix3D(itk::Array rotationParameters); itk::Point GetRotatedPoint3D(itk::Array rotationParameters, itk::Point input); itk::Matrix GetCenteredRotationMatrix3D(itk::Array rotationParameters,itk::Point centerOfRotation); @@ -61,25 +81,6 @@ namespace clitk return matrix; } - inline itk::Matrix GetBackwardAffineMatrix2D(itk::Array transformParameters) - { - itk::Matrix matrix; - //rotation part - matrix[0][0]=cos(transformParameters[0]); - matrix[0][1]=sin(transformParameters[0]); - matrix[1][0]=-sin(transformParameters[0]); - matrix[1][1]=cos(transformParameters[0]); - //translation part - matrix[0][2]=transformParameters[1]; - matrix[1][2]=transformParameters[2]; - //homogenize - matrix[2][0]=0.; - matrix[2][1]=0.; - matrix[2][2]=1.; - return matrix; - } - - inline itk::Matrix GetForwardAffineMatrix3D(itk::Array transformParameters) { itk::Matrix matrix; @@ -106,6 +107,25 @@ namespace clitk } + inline itk::Matrix GetBackwardAffineMatrix2D(itk::Array transformParameters) + { + itk::Matrix matrix; + //rotation part + matrix[0][0]=cos(transformParameters[0]); + matrix[0][1]=sin(transformParameters[0]); + matrix[1][0]=-sin(transformParameters[0]); + matrix[1][1]=cos(transformParameters[0]); + //translation part + matrix[0][2]=transformParameters[1]; + matrix[1][2]=transformParameters[2]; + //homogenize + matrix[2][0]=0.; + matrix[2][1]=0.; + matrix[2][2]=1.; + return matrix; + } + + inline itk::Matrix GetBackwardAffineMatrix3D(itk::Array transformParameters) { itk::Matrix matrix;