ITK  4.2.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
itk::DisplacementFieldTransform< TScalar, NDimensions > Class Template Reference

#include <itkDisplacementFieldTransform.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
DisplacementFieldType::DirectionType 
DirectionType
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
- Public Types inherited from itk::Transform< TScalar, NDimensions, NDimensions >
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalar, NInputDimensions > 
InputSymmetricSecondRankTensorType
typedef Transform< TScalar,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
typedef Matrix< TScalar,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalar, NOutputDimensions > 
OutputSymmetricSecondRankTensorType
- Public Types inherited from itk::TransformBase
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

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 DisplacementFieldTypeGetDisplacementField ()
virtual const unsigned long & GetDisplacementFieldSetTime ()
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 bool HasLocalSupport () const
virtual bool IsLinear () const
virtual void SetDisplacementField (DisplacementFieldType *field)
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 DisplacementFieldTypeGetInverseDisplacementField ()
virtual void SetInverseDisplacementField (DisplacementFieldType *inverseDisplacementField)
virtual InterpolatorTypeGetInterpolator ()
virtual void SetInterpolator (InterpolatorType *interpolator)
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 ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
virtual const ParametersTypeGetFixedParameters (void) const
unsigned int GetInputSpaceDimension (void) const
virtual NumberOfParametersType GetNumberOfParameters (void) const
unsigned int GetOutputSpaceDimension (void) const
virtual const ParametersTypeGetParameters (void) const
virtual std::string GetTransformTypeAsString () 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, TScalarfactor=1.0)
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const

Static Public Member Functions

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::TransformBase
 TransformBase ()
virtual ~TransformBase ()
- 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
unsigned long m_DisplacementFieldSetTime
InterpolatorType::Pointer m_Interpolator
DisplacementFieldType::Pointer m_InverseDisplacementField
- Protected Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
ParametersType m_FixedParameters
ParametersType m_Parameters

Private Member Functions

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

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.


Member Typedef Documentation

template<class TScalar , unsigned int NDimensions>
typedef SmartPointer<const Self> itk::DisplacementFieldTransform< TScalar, NDimensions >::ConstPointer
template<class TScalar , unsigned int NDimensions>
typedef Superclass::DerivativeType itk::DisplacementFieldTransform< TScalar, NDimensions >::DerivativeType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::DirectionType itk::DisplacementFieldTransform< TScalar, NDimensions >::DirectionType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldPointer
template<class TScalar , unsigned int NDimensions>
typedef Image<OutputVectorType, Dimension> itk::DisplacementFieldTransform< TScalar, NDimensions >::DisplacementFieldType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::IndexType itk::DisplacementFieldTransform< TScalar, NDimensions >::IndexType

Standard types for the displacement Field

Definition at line 166 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

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

Definition at line 132 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

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

Definition at line 142 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputPointType itk::DisplacementFieldTransform< TScalar, NDimensions >::InputPointType
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 148 of file itkDisplacementFieldTransform.h.

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

Standard variable length vector type for this class this provides an interface for the VectorImage class

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

Definition at line 127 of file itkDisplacementFieldTransform.h.

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

Standard vnl_vector type for this class.

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

Definition at line 137 of file itkDisplacementFieldTransform.h.

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

Definition at line 163 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::InverseTransformBasePointer itk::DisplacementFieldTransform< TScalar, NDimensions >::InverseTransformBasePointer
template<class TScalar , unsigned int NDimensions>
typedef Superclass::JacobianType itk::DisplacementFieldTransform< TScalar, NDimensions >::JacobianType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::NumberOfParametersType itk::DisplacementFieldTransform< TScalar, NDimensions >::NumberOfParametersType
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

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

Definition at line 179 of file itkDisplacementFieldTransform.h.

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

Definition at line 150 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorPixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVectorPixelType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVectorType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVnlVectorType itk::DisplacementFieldTransform< TScalar, NDimensions >::OutputVnlVectorType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::ParametersType itk::DisplacementFieldTransform< TScalar, NDimensions >::ParametersType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::ParametersValueType itk::DisplacementFieldTransform< TScalar, NDimensions >::ParametersValueType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::PixelType itk::DisplacementFieldTransform< TScalar, NDimensions >::PixelType

Definition at line 172 of file itkDisplacementFieldTransform.h.

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

Definition at line 167 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::ScalarType itk::DisplacementFieldTransform< TScalar, NDimensions >::ScalarType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldTransform itk::DisplacementFieldTransform< TScalar, NDimensions >::Self
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SizeType itk::DisplacementFieldTransform< TScalar, NDimensions >::SizeType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SpacingType itk::DisplacementFieldTransform< TScalar, NDimensions >::SpacingType
template<class TScalar , unsigned int NDimensions>
typedef Transform<TScalar, NDimensions, NDimensions> itk::DisplacementFieldTransform< TScalar, NDimensions >::Superclass

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

Create an identity jacobian for use in ComputeJacobianWithRespectToParameters.


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 315 of file itkDisplacementFieldTransform.h.

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 328 of file itkDisplacementFieldTransform.h.

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::TimeVaryingVelocityFieldTransform< TScalar, NDimensions >, itk::BSplineSmoothingOnUpdateDisplacementFieldTransform< TScalar, NDimensions >, and itk::GaussianSmoothingOnUpdateDisplacementFieldTransform< TScalar, NDimensions >.

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

Get/Set the displacement field.

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

Get the modification time of displacement field

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

Get/Set the interpolator.

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

Get/Set the inverse 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
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 >.

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

Definition at line 397 of file itkDisplacementFieldTransform.h.

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

Indicates if this transform is a "global" transform e.g. an affine transform, or a local one, e.g. a deformation field.

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

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

Definition at line 402 of file itkDisplacementFieldTransform.h.

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

This transform is not linear.

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

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

Definition at line 392 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
static Pointer itk::DisplacementFieldTransform< TScalar, NDimensions >::New ( )
static
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::TimeVaryingVelocityFieldTransform< TScalar, NDimensions >, itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >, itk::BSplineSmoothingOnUpdateDisplacementFieldTransform< 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

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

Reimplemented in itk::TimeVaryingVelocityFieldTransform< 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::TimeVaryingVelocityFieldTransform< TScalar, NDimensions >, and itk::TimeVaryingBSplineVelocityFieldTransform< 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.

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

Get/Set the inverse 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 >.

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

Definition at line 266 of file itkDisplacementFieldTransform.h.

References itk::Array< TValueType >::Size().

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

Definition at line 249 of file itkDisplacementFieldTransform.h.

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

Definition at line 257 of file itkDisplacementFieldTransform.h.

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

Definition at line 232 of file itkDisplacementFieldTransform.h.

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

Definition at line 240 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 210 of file itkDisplacementFieldTransform.h.

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

Definition at line 217 of file itkDisplacementFieldTransform.h.

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

Definition at line 224 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 414 of file itkDisplacementFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
unsigned long 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 422 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 426 of file itkDisplacementFieldTransform.h.

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

The interpolator.

Definition at line 418 of file itkDisplacementFieldTransform.h.

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

Definition at line 415 of file itkDisplacementFieldTransform.h.


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