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 Types inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
typedef InputPointType 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 Matrix< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
InverseMatrixType
typedef
Superclass::JacobianOfSpatialHessianType 
JacobianOfSpatialHessianType
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
typedef OutputVectorType 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 Superclass::ScalarType ScalarType
typedef
AdvancedMatrixOffsetTransformBase 
Self
typedef
Superclass::SpatialHessianType 
SpatialHessianType
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
typedef AdvancedTransform
< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
typedef OutputVectorType TranslationType
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
SpatialJacobianType::InternalMatrixType 
InternalMatrixType
typedef std::vector
< SpatialHessianType
JacobianOfSpatialHessianType
typedef std::vector
< SpatialJacobianType
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef std::vector< unsigned
long > 
NonZeroJacobianIndicesType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef AdvancedTransform Self
typedef FixedArray< Matrix
< ScalarType,
InputSpaceDimension,
InputSpaceDimension >
, OutputSpaceDimension > 
SpatialHessianType
typedef Matrix< ScalarType,
OutputSpaceDimension,
InputSpaceDimension > 
SpatialJacobianType
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass

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)
- Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
void Compose (const Self *other, bool pre=0)
const InputPointTypeGetCenter (void) const
virtual const ParametersTypeGetFixedParameters (void) const
bool GetInverse (Self *inverse) const
const InverseMatrixTypeGetInverseMatrix (void) const
const JacobianTypeGetJacobian (const InputPointType &point) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
const MatrixTypeGetMatrix (void) const
const OutputVectorTypeGetOffset (void) const
virtual void GetSpatialHessian (const InputPointType &, SpatialHessianType &) const
virtual void GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const
const OutputVectorTypeGetTranslation (void) const
virtual bool IsLinear (void) const
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 itkStaticConstMacro (ParametersDimension, unsigned int, NOutputDimensions *(NInputDimensions+1))
void SetCenter (const InputPointType &center)
virtual void SetFixedParameters (const ParametersType &)
virtual void SetMatrix (const MatrixType &matrix)
void SetOffset (const OutputVectorType &offset)
void SetTranslation (const OutputVectorType &translation)
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const
OutputPointType TransformPoint (const InputPointType &point) const
OutputVectorType TransformVector (const InputVectorType &vector) const
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
virtual bool GetHasNonZeroSpatialHessian () const
virtual unsigned long GetNumberOfNonZeroJacobianIndices (void) const

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 ()
- Protected Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
 AdvancedMatrixOffsetTransformBase (const MatrixType &matrix, const OutputVectorType &offset)
 AdvancedMatrixOffsetTransformBase (unsigned int outputDims, unsigned int paramDims)
 AdvancedMatrixOffsetTransformBase ()
virtual void ComputeOffset (void)
virtual void ComputeTranslation (void)
const InverseMatrixTypeGetVarInverseMatrix (void) const
bool InverseMatrixIsOld (void) const
virtual void PrecomputeJacobians (unsigned int outputDims, unsigned int paramDims)
void SetVarCenter (const InputPointType &center)
void SetVarInverseMatrix (const InverseMatrixType &matrix) const
void SetVarMatrix (const MatrixType &matrix)
void SetVarOffset (const OutputVectorType &offset)
void SetVarTranslation (const OutputVectorType &translation)
virtual ~AdvancedMatrixOffsetTransformBase ()
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()
 AdvancedTransform (unsigned int Dimension, unsigned int NumberOfParameters)
virtual ~AdvancedTransform ()

Private Member Functions

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

Private Attributes

ScalarArrayType m_Angle
ScalarArrayType m_Scale
ScalarArrayType m_Shear

Additional Inherited Members

- Protected Attributes inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
JacobianOfSpatialHessianType m_JacobianOfSpatialHessian
JacobianOfSpatialJacobianType m_JacobianOfSpatialJacobian
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
SpatialHessianType m_SpatialHessian

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

Definition at line 110 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
typedef SmartPointer<const Self> itk::AffineDTI3DTransform< TScalarType >::ConstPointer

Definition at line 83 of file itkAffineDTI3DTransform.h.

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

Definition at line 102 of file itkAffineDTI3DTransform.h.

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

Definition at line 106 of file itkAffineDTI3DTransform.h.

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

Definition at line 100 of file itkAffineDTI3DTransform.h.

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

Definition at line 104 of file itkAffineDTI3DTransform.h.

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

Definition at line 123 of file itkAffineDTI3DTransform.h.

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

Definition at line 109 of file itkAffineDTI3DTransform.h.

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

Definition at line 122 of file itkAffineDTI3DTransform.h.

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

Definition at line 119 of file itkAffineDTI3DTransform.h.

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

Definition at line 98 of file itkAffineDTI3DTransform.h.

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

Definition at line 108 of file itkAffineDTI3DTransform.h.

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

Definition at line 116 of file itkAffineDTI3DTransform.h.

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

Definition at line 112 of file itkAffineDTI3DTransform.h.

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

Definition at line 103 of file itkAffineDTI3DTransform.h.

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

Definition at line 107 of file itkAffineDTI3DTransform.h.

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

Definition at line 101 of file itkAffineDTI3DTransform.h.

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

Definition at line 105 of file itkAffineDTI3DTransform.h.

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

Definition at line 97 of file itkAffineDTI3DTransform.h.

template<class TScalarType = double>
typedef SmartPointer<Self> itk::AffineDTI3DTransform< TScalarType >::Pointer

Definition at line 82 of file itkAffineDTI3DTransform.h.

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

Definition at line 99 of file itkAffineDTI3DTransform.h.

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

Standard class typedefs.

Definition at line 80 of file itkAffineDTI3DTransform.h.

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

Definition at line 120 of file itkAffineDTI3DTransform.h.

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

Definition at line 117 of file itkAffineDTI3DTransform.h.

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

Definition at line 81 of file itkAffineDTI3DTransform.h.

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

Definition at line 111 of file itkAffineDTI3DTransform.h.

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 ( )
inlineprotected

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  )
protectedvirtual

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  )
protectedvirtual
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  )
protectedvirtual

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 21-03-2014 for elastix by doxygen 1.8.1.2 elastix logo