ITK  4.6.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::DisplacementFieldTransform< TScalar, NDimensions > Class Template Reference

#include <itkDisplacementFieldTransform.h>

+ Inheritance diagram for itk::DisplacementFieldTransform< TScalar, NDimensions >:
+ Collaboration diagram for itk::DisplacementFieldTransform< TScalar, NDimensions >:

Detailed Description

template<class TScalar, unsigned int NDimensions>
class itk::DisplacementFieldTransform< TScalar, NDimensions >

Provides local/dense/high-dimensionaltiy transformation via a a displacement field.

The displacement field stores vectors of displacements, with dimension NDimensions. Transformation is performed at a given point by adding the displacement at that point to the input point.

T(x, p), x is the position, p is the local parameter at position x. For a 2D example:

x = (x0, x1), p = (p0, p1)

then T(x, p) is defined as:

T(x, p) = (T0, T1) = (x0+p0, x1+p1)

During transformation, out-of-bounds input points are returned with zero displacement.

The displacement field is defined using an itkImage, and must be set before use by the user, using SetDisplacementField. The image has the same dimensionality as the input and output spaces, defined by template parameter NDimensions, and is an image of vectors of type OutputVectorType, with dimensionality NDimensions as well.

An interpolator of type VectorInterpolateImageFunction is used with the displacement field image. By default, VectorLinearInterpolateImageFunction is used, and the user can override using SetInterpolator.

The displacement field data is stored using the common OptimizerParameters type in conjunction with the ImageVectorOptimizerParametersHelper class. This allows access of the displacement field image as if it were an itkArray, allowing transparent use with other classes.

Warning
The SetParameters method will copy the passed parameters, which can be costly since displacement fields are dense and thus potentially very large.

The UpdateTransformParameters method simply adds the provided update array, applying the usual optional scaling factor. Derived classes may provide different behavior.

Because this is a local transform, methods that have a version that takes a point must be used, such as TransformVector, TransformCovariantVector, and TransformDiffusionTensor. Also, ComputeJacobianWithRespectToParameters simply returns an identity matrix (see method documentation), and ComputeJacobianWithRespectToPosition should be used.

Definition at line 87 of file itkDisplacementFieldTransform.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::DerivativeType DerivativeType
 
typedef
DisplacementFieldType::DirectionType 
DirectionType
 
typedef
DisplacementFieldType::ConstPointer 
DisplacementFieldConstPointer
 
typedef
DisplacementFieldType::Pointer 
DisplacementFieldPointer
 
typedef Image
< OutputVectorType, Dimension
DisplacementFieldType
 
typedef
DisplacementFieldType::IndexType 
IndexType
 
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
 
typedef
Superclass::InputDiffusionTensor3DType 
InputDiffusionTensor3DType
 
typedef Superclass::InputPointType InputPointType
 
typedef CovariantVector
< ScalarType,
InputDiffusionTensor3DType::Dimension > 
InputTensorEigenVectorType
 
typedef
Superclass::InputVectorPixelType 
InputVectorPixelType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
 
typedef
VectorInterpolateImageFunction
< DisplacementFieldType,
ScalarType
InterpolatorType
 
typedef
Superclass::InverseTransformBasePointer 
InverseTransformBasePointer
 
typedef Superclass::JacobianType JacobianType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef
ImageVectorOptimizerParametersHelper
< ScalarType,
OutputVectorType::Dimension,
Dimension
OptimizerParametersHelperType
 
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
 
typedef
Superclass::OutputDiffusionTensor3DType 
OutputDiffusionTensor3DType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef CovariantVector
< ScalarType,
OutputDiffusionTensor3DType::Dimension > 
OutputTensorEigenVectorType
 
typedef
Superclass::OutputVectorPixelType 
OutputVectorPixelType
 
typedef
Superclass::OutputVectorType 
OutputVectorType
 
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef
DisplacementFieldType::PixelType 
PixelType
 
typedef SmartPointer< SelfPointer
 
typedef
DisplacementFieldType::PointType 
PointType
 
typedef
DisplacementFieldType::RegionType 
RegionType
 
typedef Superclass::ScalarType ScalarType
 
typedef DisplacementFieldTransform Self
 
typedef
DisplacementFieldType::SizeType 
SizeType
 
typedef
DisplacementFieldType::SpacingType 
SpacingType
 
typedef Transform< TScalar,
NDimensions, NDimensions > 
Superclass
 
typedef
Superclass::TransformCategoryType 
TransformCategoryType
 
- Public Types inherited from itk::Transform< TScalar, NDimensions, NDimensions >
typedef SmartPointer< const SelfConstPointer
 
typedef Array
< ParametersValueType
DerivativeType
 
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
 
typedef CovariantVector
< TScalar, NInputDimensions > 
InputCovariantVectorType
 
typedef DiffusionTensor3D
< TScalar > 
InputDiffusionTensor3DType
 
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
 
typedef Point< TScalar,
NInputDimensions > 
InputPointType
 
typedef
SymmetricSecondRankTensor
< TScalar, NInputDimensions > 
InputSymmetricSecondRankTensorType
 
typedef VariableLengthVector
< TScalar > 
InputVectorPixelType
 
typedef Vector< TScalar,
NInputDimensions > 
InputVectorType
 
typedef vnl_vector_fixed
< TScalar, NInputDimensions > 
InputVnlVectorType
 
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
 
typedef Transform< TScalar,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
 
typedef Array2D
< ParametersValueType
JacobianType
 
typedef Matrix< TScalar,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef CovariantVector
< TScalar, NOutputDimensions > 
OutputCovariantVectorType
 
typedef DiffusionTensor3D
< TScalar > 
OutputDiffusionTensor3DType
 
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
 
typedef Point< TScalar,
NOutputDimensions > 
OutputPointType
 
typedef
SymmetricSecondRankTensor
< TScalar, NOutputDimensions > 
OutputSymmetricSecondRankTensorType
 
typedef VariableLengthVector
< TScalar > 
OutputVectorPixelType
 
typedef Vector< TScalar,
NOutputDimensions > 
OutputVectorType
 
typedef vnl_vector_fixed
< TScalar, NOutputDimensions > 
OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef TScalar ScalarType
 
typedef Transform Self
 
typedef TransformBaseTemplate
< TScalar > 
Superclass
 
typedef
Superclass::TransformCategoryType 
TransformCategoryType
 
- Public Types inherited from itk::TransformBaseTemplate< TScalar >
typedef SmartPointer< const SelfConstPointer
 
typedef IdentifierType NumberOfParametersType
 
typedef OptimizerParameters
< ParametersValueType
ParametersType
 
typedef TScalar ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef TransformBaseTemplate Self
 
typedef Object Superclass
 
enum  TransformCategoryType {
  UnknownTransformCategory =0,
  Linear =1,
  BSpline =2,
  Spline =3,
  DisplacementField =4,
  VelocityField =5
}
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const
 
virtual void ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianType &j) const
 
virtual void ComputeJacobianWithRespectToPosition (const IndexType &x, JacobianType &j) const
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const ModifiedTimeTypeGetDisplacementFieldSetTime () const
 
bool GetInverse (Self *inverse) const
 
virtual void GetInverseJacobianOfForwardFieldWithRespectToPosition (const InputPointType &point, JacobianType &jacobian, bool useSVD=false) const
 
virtual void GetInverseJacobianOfForwardFieldWithRespectToPosition (const IndexType &index, JacobianType &jacobian, bool useSVD=false) const
 
virtual InverseTransformBasePointer GetInverseTransform () const
 
virtual const char * GetNameOfClass () const
 
virtual NumberOfParametersType GetNumberOfLocalParameters (void) const
 
virtual TransformCategoryType GetTransformCategory () const
 
virtual void SetFixedParameters (const ParametersType &)
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
 
OutputVectorPixelType TransformDiffusionTensor (const InputVectorPixelType &) const
 
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual void UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0)
 
virtual void SetDisplacementField (DisplacementFieldType *field)
 
virtual DisplacementFieldTypeGetModifiableDisplacementField ()
 
virtual const
DisplacementFieldType
GetDisplacementField () const
 
virtual void SetInverseDisplacementField (DisplacementFieldType *inverseDisplacementField)
 
virtual DisplacementFieldTypeGetModifiableInverseDisplacementField ()
 
virtual const
DisplacementFieldType
GetInverseDisplacementField () const
 
virtual void SetInterpolator (InterpolatorType *interpolator)
 
virtual InterpolatorTypeGetModifiableInterpolator ()
 
virtual const InterpolatorTypeGetInterpolator () const
 
virtual void SetInverseInterpolator (InterpolatorType *interpolator)
 
virtual InterpolatorTypeGetModifiableInverseInterpolator ()
 
virtual const InterpolatorTypeGetInverseInterpolator () const
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
OutputDiffusionTensor3DType TransformDiffusionTensor (const InputDiffusionTensor3DType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual void SetParameters (const ParametersType &params)
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &j) const
 
- Public Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const =0
 
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
 
virtual const ParametersTypeGetFixedParameters (void) const
 
unsigned int GetInputSpaceDimension (void) const
 
bool GetInverse (Self *) const
 
virtual NumberOfParametersType GetNumberOfParameters (void) const
 
unsigned int GetOutputSpaceDimension (void) const
 
virtual const ParametersTypeGetParameters (void) const
 
virtual std::string GetTransformTypeAsString () const
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
virtual void SetParametersByValue (const ParametersType &p)
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const
 
virtual OutputPointType TransformPoint (const InputPointType &) const =0
 
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const
 
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual void UpdateTransformParameters (const DerivativeType &update, TScalar factor=1.0)
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary (void)
 
const MetaDataDictionaryGetMetaDataDictionary (void) const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
virtual void Register () const ITK_OVERRIDE
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) ITK_OVERRIDE
 
virtual void UnRegister () const ITK_OVERRIDE
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static const unsigned int Dimension = NDimensions
 
- Static Public Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
static const unsigned int InputSpaceDimension
 
static const unsigned int OutputSpaceDimension
 

Protected Member Functions

 DisplacementFieldTransform ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual ~DisplacementFieldTransform ()
 
- Protected Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
virtual LightObject::Pointer InternalClone () const
 
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType, const JacobianType) const
 
 Transform ()
 
 Transform (NumberOfParametersType NumberOfParameters)
 
virtual ~Transform ()
 
- Protected Member Functions inherited from itk::TransformBaseTemplate< TScalar >
 TransformBaseTemplate ()
 
virtual ~TransformBaseTemplate ()
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Protected Attributes

DisplacementFieldType::Pointer m_DisplacementField
 
ModifiedTimeType m_DisplacementFieldSetTime
 
JacobianType m_IdentityJacobian
 
InterpolatorType::Pointer m_Interpolator
 
DisplacementFieldType::Pointer m_InverseDisplacementField
 
InterpolatorType::Pointer m_InverseInterpolator
 
- Protected Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
 
ParametersType m_FixedParameters
 
ParametersType m_Parameters
 
- Protected Attributes inherited from itk::LightObject
InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Private Member Functions

virtual void ComputeJacobianWithRespectToPositionInternal (const IndexType &index, JacobianType &jacobian, bool doInverseJacobian) const
 
 DisplacementFieldTransform (const Self &)
 
void operator= (const Self &)
 
virtual void SetFixedParametersFromDisplacementField () const
 
virtual void VerifyFixedParametersInformation ()
 

Additional Inherited Members

- Protected Types inherited from itk::LightObject
typedef int InternalReferenceCountType
 

Member Typedef Documentation

template<class TScalar , unsigned int NDimensions>
typedef SmartPointer<const Self> itk::DisplacementFieldTransform< TScalar, NDimensions >::ConstPointer

Definition at line 95 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::DerivativeType itk::DisplacementFieldTransform< TScalar, NDimensions >::DerivativeType

Derivative type

Definition at line 156 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::DirectionType itk::DisplacementFieldTransform< TScalar, NDimensions >::DirectionType

Definition at line 174 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::ConstPointer itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldConstPointer

Definition at line 164 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldPointer

Definition at line 163 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Image<OutputVectorType, Dimension> itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldType

Define the displacement field type and corresponding interpolator type.

Definition at line 162 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::IndexType itk::DisplacementFieldTransform< TScalar, NDimensions >::IndexType

Standard types for the displacement Field

Definition at line 170 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputCovariantVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class

Definition at line 135 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputDiffusionTensor3DType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputDiffusionTensor3DType

Standard diffusion tensor type for this class

Definition at line 145 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputPointType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputPointType

Standard coordinate point type for this class.

Definition at line 123 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef CovariantVector<ScalarType, InputDiffusionTensor3DType::Dimension> itk::DisplacementFieldTransform< TScalar, NDimensions >::InputTensorEigenVectorType

Standard tensor type for this class

Definition at line 151 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputVectorPixelType

Definition at line 130 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputVectorType

Standard vector type for this class.

Definition at line 127 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputVnlVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputVnlVectorType

Standard vnl_vector type for this class.

Definition at line 140 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef VectorInterpolateImageFunction<DisplacementFieldType, ScalarType> itk::DisplacementFieldTransform< TScalar, NDimensions >::InterpolatorType

Definition at line 167 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InverseTransformBasePointer itk::DisplacementFieldTransform< TScalar, NDimensions >::InverseTransformBasePointer

InverseTransform type.

Definition at line 101 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::JacobianType itk::DisplacementFieldTransform< TScalar, NDimensions >::JacobianType

Jacobian type.

Definition at line 114 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::NumberOfParametersType itk::DisplacementFieldTransform< TScalar, NDimensions >::NumberOfParametersType

The number of parameters defininig this transform.

Definition at line 120 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef ImageVectorOptimizerParametersHelper< ScalarType, OutputVectorType::Dimension, Dimension> itk::DisplacementFieldTransform< TScalar, NDimensions >::OptimizerParametersHelperType

Define the internal parameter helper used to access the field

Definition at line 183 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputCovariantVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputCovariantVectorType

Definition at line 137 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputDiffusionTensor3DType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputDiffusionTensor3DType

Definition at line 147 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputPointType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputPointType

Definition at line 124 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef CovariantVector<ScalarType, OutputDiffusionTensor3DType::Dimension> itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputTensorEigenVectorType

Definition at line 153 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVectorPixelType

Definition at line 131 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVectorType

Definition at line 128 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVnlVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVnlVectorType

Definition at line 141 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::ParametersType itk::DisplacementFieldTransform< TScalar, NDimensions >::ParametersType

Type of the input parameters.

Definition at line 110 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::ParametersValueType itk::DisplacementFieldTransform< TScalar, NDimensions >::ParametersValueType

Definition at line 111 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::PixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::PixelType

Definition at line 176 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef SmartPointer<Self> itk::DisplacementFieldTransform< TScalar, NDimensions >::Pointer

Definition at line 94 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::PointType itk::DisplacementFieldTransform< TScalar, NDimensions >::PointType

Definition at line 175 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::RegionType itk::DisplacementFieldTransform< TScalar, NDimensions >::RegionType

Definition at line 171 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::ScalarType itk::DisplacementFieldTransform< TScalar, NDimensions >::ScalarType

Scalar type.

Definition at line 107 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldTransform itk::DisplacementFieldTransform< TScalar, NDimensions >::Self

Standard class typedefs.

Definition at line 92 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SizeType itk::DisplacementFieldTransform< TScalar, NDimensions >::SizeType

Definition at line 172 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SpacingType itk::DisplacementFieldTransform< TScalar, NDimensions >::SpacingType

Definition at line 173 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Transform<TScalar, NDimensions, NDimensions> itk::DisplacementFieldTransform< TScalar, NDimensions >::Superclass

Definition at line 93 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::TransformCategoryType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformCategoryType

Transform category type.

Definition at line 117 of file itkDisplacementFieldTransform.h.

Constructor & Destructor Documentation

template<class TScalar , unsigned int NDimensions>
itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldTransform ( )
protected
template<class TScalar , unsigned int NDimensions>
virtual itk::DisplacementFieldTransform< TScalar, NDimensions >::~DisplacementFieldTransform ( )
protectedvirtual
template<class TScalar , unsigned int NDimensions>
itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldTransform ( const Self )
private

Member Function Documentation

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeInverseJacobianWithRespectToPosition ( const InputPointType x,
JacobianType j 
) const
virtual

Compute the jacobian with respect to the position, by point. j will be resized as needed.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType ,
JacobianType j 
) const
inlinevirtual

Compute the jacobian with respect to the parameters at a point. Simply returns identity matrix, sized [NDimensions, NDimensions].

T(x, p), x is the position, p is the local parameter at position x. Take a 2D example, x = (x0, x1), p = (p0, p1) and T(x, p) is defined as:

T(x, p) = (T0, T1) = (x0+p0, x1+p1)

Each local deformation is defined as a translation transform. So the Jacobian w.r.t parameters are

dT/dp = [ dT0/dp0, dT0/dp1; dT1/dp0, dT1/dp1 ];

= [1, 0; 0, 1];

TODO: format the above for doxygen formula.

Definition at line 326 of file itkDisplacementFieldTransform.h.

References itk::DisplacementFieldTransform< TScalar, NDimensions >::m_IdentityJacobian.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToParameters ( const IndexType ,
JacobianType j 
) const
inlinevirtual

Compute the jacobian with respect to the parameters at an index. Simply returns identity matrix, sized [NDimensions, NDimensions]. See ComputeJacobianWithRespectToParameters( InputPointType, ... ) for rationale.

Definition at line 339 of file itkDisplacementFieldTransform.h.

References itk::DisplacementFieldTransform< TScalar, NDimensions >::m_IdentityJacobian.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToPosition ( const InputPointType x,
JacobianType j 
) const
virtual

Compute the jacobian with respect to the position, by point. j will be resized as needed.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToPosition ( const IndexType x,
JacobianType j 
) const
virtual

Compute the jacobian with respect to the position, by index. j will be resized as needed.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToPositionInternal ( const IndexType index,
JacobianType jacobian,
bool  doInverseJacobian 
) const
privatevirtual

Internal method for calculating either forward or inverse jacobian, depending on state of doInverseJacobian. Used by public methods ComputeJacobianWithRespectToPosition and GetInverseJacobianOfForwardFieldWithRespectToPosition to perform actual work. doInverseJacobian indicates that the inverse jacobian should be returned

template<class TScalar , unsigned int NDimensions>
virtual::itk::LightObject::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

Reimplemented in itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >, itk::GaussianExponentialDiffeomorphicTransform< TScalar, NDimensions >, itk::TimeVaryingVelocityFieldTransform< TScalar, NDimensions >, itk::GaussianSmoothingOnUpdateDisplacementFieldTransform< TScalar, NDimensions >, itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform< TScalar, NDimensions >, and itk::VelocityFieldTransform< TScalar, NDimensions >.

template<class TScalar , unsigned int NDimensions>
virtual const DisplacementFieldType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetDisplacementField ( ) const
virtual

Get/Set the displacement field. Set the displacement field. Create special set accessor to update interpolator and assign displacement field to transform parameters container.

template<class TScalar , unsigned int NDimensions>
virtual const ModifiedTimeType& itk::DisplacementFieldTransform< TScalar, NDimensions >::GetDisplacementFieldSetTime ( ) const
virtual

Get the modification time of displacement field

template<class TScalar , unsigned int NDimensions>
virtual const InterpolatorType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInterpolator ( ) const
virtual

Get/Set the interpolator. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
bool itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverse ( Self inverse) const

Return an inverse of this transform. Note that the inverse displacement field must be set by the user.

template<class TScalar , unsigned int NDimensions>
virtual const DisplacementFieldType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverseDisplacementField ( ) const
virtual

Get/Set the inverse displacement field. This must be supplied by the user for GetInverse() to work.

template<class TScalar , unsigned int NDimensions>
virtual const InterpolatorType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverseInterpolator ( ) const
virtual

Get/Set the interpolator for the inverse field. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverseJacobianOfForwardFieldWithRespectToPosition ( const InputPointType point,
JacobianType jacobian,
bool  useSVD = false 
) const
virtual

Compute the inverse jacobian of the forward displacement field with respect to the position, by point. Note that this is different than the jacobian of the inverse displacement field. This takes advantage of the ability to compute the inverse jacobian of a displacement field by simply reversing the sign of the forward jacobian. However, a more accurate method for computing the inverse jacobian is to take the inverse of the jacobian matrix. This method is more computationally expensive and may be used by setting useSVD to true

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverseJacobianOfForwardFieldWithRespectToPosition ( const IndexType index,
JacobianType jacobian,
bool  useSVD = false 
) const
virtual

Compute the inverse jacobian of the forward displacement field with respect to the position, by index.Note that this is different than the jacobian of the inverse displacement field. This takes advantage of the ability to compute the inverse jacobian of a displacement field by simply reversing the sign of the forward jacobian. However, a more accurate method for computing the inverse jacobian is to take the inverse of the jacobian matrix. This method is more computationally expensive and may be used by setting useSVD to true

template<class TScalar , unsigned int NDimensions>
virtual InverseTransformBasePointer itk::DisplacementFieldTransform< TScalar, NDimensions >::GetInverseTransform ( ) const
virtual

Return an inverse of this transform. Note that the inverse displacement field must be set by the user.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Reimplemented in itk::VelocityFieldTransform< TScalar, NDimensions >, and itk::ConstantVelocityFieldTransform< TScalar, NDimensions >.

template<class TScalar , unsigned int NDimensions>
virtual DisplacementFieldType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetModifiableDisplacementField ( )
virtual

Get/Set the displacement field. Set the displacement field. Create special set accessor to update interpolator and assign displacement field to transform parameters container.

template<class TScalar , unsigned int NDimensions>
virtual InterpolatorType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetModifiableInterpolator ( )
virtual

Get/Set the interpolator. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
virtual DisplacementFieldType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetModifiableInverseDisplacementField ( )
virtual

Get/Set the inverse displacement field. This must be supplied by the user for GetInverse() to work.

template<class TScalar , unsigned int NDimensions>
virtual InterpolatorType* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetModifiableInverseInterpolator ( )
virtual

Get/Set the interpolator for the inverse field. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
virtual const char* itk::DisplacementFieldTransform< TScalar, NDimensions >::GetNameOfClass ( ) const
virtual
template<class TScalar , unsigned int NDimensions>
virtual NumberOfParametersType itk::DisplacementFieldTransform< TScalar, NDimensions >::GetNumberOfLocalParameters ( void  ) const
inlinevirtual

Return the number of local parameters that completely defines the Transform at an individual voxel. For transforms with local support, this will enable downstream computation of the jacobian wrt only the local support region. For instance, in the case of a deformation field, this will be equal to the number of image dimensions. If it is an affine transform, this will be the same as the GetNumberOfParameters().

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 410 of file itkDisplacementFieldTransform.h.

References itk::DisplacementFieldTransform< TScalar, NDimensions >::Dimension.

template<class TScalar , unsigned int NDimensions>
virtual TransformCategoryType itk::DisplacementFieldTransform< TScalar, NDimensions >::GetTransformCategory ( ) const
inlinevirtual

This transform is not linear.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 405 of file itkDisplacementFieldTransform.h.

References itk::TransformBaseTemplate< TScalar >::DisplacementField.

template<class TScalar , unsigned int NDimensions>
static Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::New ( )
static

New macro for creation of through a Smart Pointer

template<class TScalar , unsigned int NDimensions>
void itk::DisplacementFieldTransform< TScalar, NDimensions >::operator= ( const Self )
private
template<class TScalar , unsigned int NDimensions>
void itk::DisplacementFieldTransform< TScalar, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::Object.

Reimplemented in itk::VelocityFieldTransform< TScalar, NDimensions >, itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >, itk::GaussianExponentialDiffeomorphicTransform< TScalar, NDimensions >, itk::GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform< TScalar, NDimensions >, and itk::GaussianSmoothingOnUpdateDisplacementFieldTransform< TScalar, NDimensions >.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetDisplacementField ( DisplacementFieldType field)
virtual

Get/Set the displacement field. Set the displacement field. Create special set accessor to update interpolator and assign displacement field to transform parameters container.

Reimplemented in itk::VelocityFieldTransform< TScalar, NDimensions >.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetFixedParameters ( const ParametersType )
virtual

This method sets the fixed parameters of the transform. For a displacement field transform, the fixed parameters are the following: field size, field origin, field spacing, and field direction.

Note: If a displacement field already exists, this function creates a new one with zero displacement (identity transform). If an inverse displacement field exists, a new one is also created.

Implements itk::Transform< TScalar, NDimensions, NDimensions >.

Reimplemented in itk::ConstantVelocityFieldTransform< TScalar, NDimensions >, and itk::VelocityFieldTransform< TScalar, NDimensions >.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetFixedParametersFromDisplacementField ( ) const
privatevirtual

Convenience method which reads the information from the current displacement field into m_FixedParameters.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetInterpolator ( InterpolatorType interpolator)
virtual

Get/Set the interpolator. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetInverseDisplacementField ( DisplacementFieldType inverseDisplacementField)
virtual

Get/Set the inverse displacement field. This must be supplied by the user for GetInverse() to work.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetInverseInterpolator ( InterpolatorType interpolator)
virtual

Get/Set the interpolator for the inverse field. Create out own set accessor that assigns the displacement field

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::SetParameters ( const ParametersType params)
inlinevirtual

Set the transformation parameters. This sets the displacement field image directly.

Implements itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 277 of file itkDisplacementFieldTransform.h.

References itk::Transform< TScalar, NDimensions, NDimensions >::m_Parameters, itk::Object::Modified(), and itk::Array< TValue >::Size().

template<class TScalar , unsigned int NDimensions>
virtual OutputCovariantVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType ) const
inlinevirtual

Definition at line 260 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
virtual OutputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputVectorPixelType ) const
inlinevirtual

Definition at line 268 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
OutputDiffusionTensor3DType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformDiffusionTensor ( const InputDiffusionTensor3DType ) const
inline

Definition at line 243 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
OutputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformDiffusionTensor ( const InputVectorPixelType ) const
inline

Definition at line 251 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
virtual OutputPointType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformPoint ( const InputPointType thisPoint) const
virtual

Method to transform a point. Out-of-bounds points will be returned with zero displacemnt.

template<class TScalar , unsigned int NDimensions>
virtual OutputVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformVector ( const InputVectorType ) const
inlinevirtual

Definition at line 221 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
virtual OutputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformVector ( const InputVectorPixelType ) const
inlinevirtual

Definition at line 228 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
virtual OutputVnlVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::TransformVector ( const InputVnlVectorType ) const
inlinevirtual

Definition at line 235 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::UpdateTransformParameters ( const DerivativeType update,
ScalarType  factor = 1.0 
)
virtual
template<class TScalar , unsigned int NDimensions>
virtual void itk::DisplacementFieldTransform< TScalar, NDimensions >::VerifyFixedParametersInformation ( )
privatevirtual

Internal method to check that the inverse and forward displacement fields have the same fixed parameters.

Member Data Documentation

template<class TScalar , unsigned int NDimensions>
const unsigned int itk::DisplacementFieldTransform< TScalar, NDimensions >::Dimension = NDimensions
static
template<class TScalar , unsigned int NDimensions>
DisplacementFieldType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::m_DisplacementField
protected

The displacement field and its inverse (if it exists).

Definition at line 422 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
ModifiedTimeType itk::DisplacementFieldTransform< TScalar, NDimensions >::m_DisplacementFieldSetTime
protected

Track when the displacement field was last set/assigned, as distinct from when it may have had its contents modified.

Definition at line 431 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
JacobianType itk::DisplacementFieldTransform< TScalar, NDimensions >::m_IdentityJacobian
protected

Create an identity jacobian for use in ComputeJacobianWithRespectToParameters.

Definition at line 435 of file itkDisplacementFieldTransform.h.

Referenced by itk::DisplacementFieldTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToParameters().

template<class TScalar , unsigned int NDimensions>
InterpolatorType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::m_Interpolator
protected

The interpolator.

Definition at line 426 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
DisplacementFieldType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::m_InverseDisplacementField
protected

Definition at line 423 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
InterpolatorType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::m_InverseInterpolator
protected

Definition at line 427 of file itkDisplacementFieldTransform.h.


The documentation for this class was generated from the following file: