go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::AffineDTI3DTransform< TScalarType > Class Template Reference

#include <itkAffineDTI3DTransform.h>

Inheritance diagram for itk::AffineDTI3DTransform< TScalarType >:
Inheritance graph
[legend]
Collaboration diagram for itk::AffineDTI3DTransform< TScalarType >:
Collaboration graph
[legend]

Public Types

typedef Superclass::ScalarType AngleType
typedef Superclass::CenterType CenterType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
Superclass::InternalMatrixType 
InternalMatrixType
typedef
Superclass::InverseMatrixType 
InverseMatrixType
typedef
Superclass::JacobianOfSpatialHessianType 
JacobianOfSpatialHessianType
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MatrixType MatrixType
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
typedef Superclass::OffsetType OffsetType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef FixedArray< ScalarTypeScalarArrayType
typedef Superclass::ScalarType ScalarType
typedef AffineDTI3DTransform Self
typedef
Superclass::SpatialHessianType 
SpatialHessianType
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
typedef
AdvancedMatrixOffsetTransformBase
< TScalarType, 3, 3 > 
Superclass
typedef Superclass::TranslationType TranslationType

Public Member Functions

virtual const char * GetClassName () const
virtual void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
const ParametersTypeGetParameters (void) const
 itkStaticConstMacro (SpaceDimension, unsigned int, 3)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, 3)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, 3)
 itkStaticConstMacro (ParametersDimension, unsigned int, 12)
virtual void SetIdentity (void)
void SetParameters (const ParametersType &parameters)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 AffineDTI3DTransform ()
 AffineDTI3DTransform (const MatrixType &matrix, const OutputPointType &offset)
 AffineDTI3DTransform (unsigned int outputSpaceDims, unsigned int paramsSpaceDims)
void ComputeMatrix (void)
void ComputeMatrixParameters (void)
virtual void PrecomputeJacobianOfSpatialJacobian (void)
void PrintSelf (std::ostream &os, Indent indent) const
void SetVarAngleScaleShear (ScalarArrayType angle, ScalarArrayType shear, ScalarArrayType scale)
 ~AffineDTI3DTransform ()

Private Member Functions

 AffineDTI3DTransform (const Self &)
void operator= (const Self &)

Private Attributes

ScalarArrayType m_Angle
ScalarArrayType m_Scale
ScalarArrayType m_Shear

Detailed Description

template<class TScalarType = double>
class itk::AffineDTI3DTransform< TScalarType >

AffineDTI3DTransform of a vector space (e.g. space coordinates)

This transform applies an affine transformation, but is parameterized by angles, shear factors, scales, and translation, instead of by the affine matrix. It is meant for registration of MR diffusion weighted images, but could be used for other images as well of course.

The affine model is adopted from the following paper: [1] A. Leemans and D.K. Jones. "The B-matrix must be rotated when correcting for subject motion in DTI data". Magnetic Resonance in Medicine, Volume 61, Issue 6, pages 1336 - 1349, 2009.

The model is as follows:
T(x) = R G S (x-c) + t
with:

Using this model, the rotation components can be easily extracted an applied to the B-matrix.

The parameters are ordered as follows: [ AngleX AngleY AngleZ ShearX ShearY ShearZ ScaleX ScaleY ScaleZ TranslationX TranslationY TranslationZ ]

The serialization of the fixed parameters is an array of 3 elements defining the center of rotation.

Definition at line 75 of file itkAffineDTI3DTransform.h.


Member Typedef Documentation

template<class TScalarType = double>
typedef Superclass::ScalarType itk::AffineDTI3DTransform< TScalarType >::AngleType

Definition at line 113 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
typedef Superclass::CenterType itk::AffineDTI3DTransform< TScalarType >::CenterType
template<class TScalarType = double>
typedef SmartPointer<const Self> itk::AffineDTI3DTransform< TScalarType >::ConstPointer
template<class TScalarType = double>
typedef Superclass::InputCovariantVectorType itk::AffineDTI3DTransform< TScalarType >::InputCovariantVectorType
template<class TScalarType = double>
typedef Superclass::InputPointType itk::AffineDTI3DTransform< TScalarType >::InputPointType
template<class TScalarType = double>
typedef Superclass::InputVectorType itk::AffineDTI3DTransform< TScalarType >::InputVectorType
template<class TScalarType = double>
typedef Superclass::InputVnlVectorType itk::AffineDTI3DTransform< TScalarType >::InputVnlVectorType
template<class TScalarType = double>
typedef Superclass::InternalMatrixType itk::AffineDTI3DTransform< TScalarType >::InternalMatrixType
template<class TScalarType = double>
typedef Superclass::InverseMatrixType itk::AffineDTI3DTransform< TScalarType >::InverseMatrixType
template<class TScalarType = double>
typedef Superclass ::JacobianOfSpatialHessianType itk::AffineDTI3DTransform< TScalarType >::JacobianOfSpatialHessianType
template<class TScalarType = double>
typedef Superclass ::JacobianOfSpatialJacobianType itk::AffineDTI3DTransform< TScalarType >::JacobianOfSpatialJacobianType
template<class TScalarType = double>
typedef Superclass::JacobianType itk::AffineDTI3DTransform< TScalarType >::JacobianType
template<class TScalarType = double>
typedef Superclass::MatrixType itk::AffineDTI3DTransform< TScalarType >::MatrixType
template<class TScalarType = double>
typedef Superclass ::NonZeroJacobianIndicesType itk::AffineDTI3DTransform< TScalarType >::NonZeroJacobianIndicesType
template<class TScalarType = double>
typedef Superclass::OffsetType itk::AffineDTI3DTransform< TScalarType >::OffsetType
template<class TScalarType = double>
typedef Superclass::OutputCovariantVectorType itk::AffineDTI3DTransform< TScalarType >::OutputCovariantVectorType
template<class TScalarType = double>
typedef Superclass::OutputPointType itk::AffineDTI3DTransform< TScalarType >::OutputPointType
template<class TScalarType = double>
typedef Superclass::OutputVectorType itk::AffineDTI3DTransform< TScalarType >::OutputVectorType
template<class TScalarType = double>
typedef Superclass::OutputVnlVectorType itk::AffineDTI3DTransform< TScalarType >::OutputVnlVectorType
template<class TScalarType = double>
typedef Superclass::ParametersType itk::AffineDTI3DTransform< TScalarType >::ParametersType
template<class TScalarType = double>
typedef SmartPointer<Self> itk::AffineDTI3DTransform< TScalarType >::Pointer
template<class TScalarType = double>
typedef FixedArray< ScalarType > itk::AffineDTI3DTransform< TScalarType >::ScalarArrayType

Definition at line 125 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
typedef Superclass::ScalarType itk::AffineDTI3DTransform< TScalarType >::ScalarType
template<class TScalarType = double>
typedef AffineDTI3DTransform itk::AffineDTI3DTransform< TScalarType >::Self

Standard class typedefs.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

Definition at line 80 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
typedef Superclass::SpatialHessianType itk::AffineDTI3DTransform< TScalarType >::SpatialHessianType
template<class TScalarType = double>
typedef Superclass::SpatialJacobianType itk::AffineDTI3DTransform< TScalarType >::SpatialJacobianType
template<class TScalarType = double>
typedef AdvancedMatrixOffsetTransformBase< TScalarType,3,3 > itk::AffineDTI3DTransform< TScalarType >::Superclass
template<class TScalarType = double>
typedef Superclass::TranslationType itk::AffineDTI3DTransform< TScalarType >::TranslationType

Constructor & Destructor Documentation

template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::AffineDTI3DTransform ( ) [protected]
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::AffineDTI3DTransform ( const MatrixType matrix,
const OutputPointType offset 
) [protected]
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::AffineDTI3DTransform ( unsigned int  outputSpaceDims,
unsigned int  paramsSpaceDims 
) [protected]
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::~AffineDTI3DTransform ( ) [inline, protected]

Definition at line 150 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::AffineDTI3DTransform ( const Self ) [private]

Member Function Documentation

template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::ComputeMatrix ( void  ) [protected, virtual]

Compute the components of the rotation matrix in the superclass.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::ComputeMatrixParameters ( void  ) [protected, virtual]
template<class TScalarType = double>
virtual const char* itk::AffineDTI3DTransform< TScalarType >::GetClassName ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

template<class TScalarType = double>
virtual void itk::AffineDTI3DTransform< TScalarType >::GetJacobian ( const InputPointType ,
JacobianType ,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the transformation.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

template<class TScalarType = double>
const ParametersType& itk::AffineDTI3DTransform< TScalarType >::GetParameters ( void  ) const
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
 
)

Dimension of the space.

template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::itkStaticConstMacro ( InputSpaceDimension  ,
unsigned  int,
 
)
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned  int,
 
)
template<class TScalarType = double>
itk::AffineDTI3DTransform< TScalarType >::itkStaticConstMacro ( ParametersDimension  ,
unsigned  int,
12   
)
template<class TScalarType = double>
static Pointer itk::AffineDTI3DTransform< TScalarType >::New ( ) [static]

New macro for creation of through a Smart Pointer.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::operator= ( const Self ) [private]
template<class TScalarType = double>
virtual void itk::AffineDTI3DTransform< TScalarType >::PrecomputeJacobianOfSpatialJacobian ( void  ) [protected, virtual]

Update the m_JacobianOfSpatialJacobian.

template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected]
template<class TScalarType = double>
virtual void itk::AffineDTI3DTransform< TScalarType >::SetIdentity ( void  ) [virtual]
template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::SetParameters ( const ParametersType parameters)

Set/Get the transformation from a container of parameters This is typically used by optimizers. There are 12 parameters. [ Rx Ry Rz Gx Gy Gz Sx Sy Sz Tx Ty Tz ] ~rotation, scale, skew, translation

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >.

template<class TScalarType = double>
void itk::AffineDTI3DTransform< TScalarType >::SetVarAngleScaleShear ( ScalarArrayType  angle,
ScalarArrayType  shear,
ScalarArrayType  scale 
) [protected]

Set values of angles etc directly without recomputing other parameters.


Field Documentation

template<class TScalarType = double>
ScalarArrayType itk::AffineDTI3DTransform< TScalarType >::m_Angle [private]

Definition at line 171 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
ScalarArrayType itk::AffineDTI3DTransform< TScalarType >::m_Scale [private]

Definition at line 173 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
ScalarArrayType itk::AffineDTI3DTransform< TScalarType >::m_Shear [private]

Definition at line 172 of file itkAffineDTI3DTransform.h.



Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo