NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar > Class Template Reference

Base class for deformable transforms. More...

Inheritance diagram for itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >:
Inheritance graph
[legend]
Collaboration diagram for itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >:
Collaboration graph
[legend]

Public Types

typedef DeformableTransform Self
 
typedef Transform< TScalarType,
NDimensions, NDimensions > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::ScalarType ScalarType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef Array
< ParametersValueType
DerivativeType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::OutputVectorType 
OutputVectorType
 
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
 
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
 
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
 
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
 
typedef Vector
< TDeformationScalar,
NDimensions > 
VectorFieldPixelType
 
typedef Image
< VectorFieldPixelType,
NDimensions > 
VectorFieldImageType
 
typedef
VectorFieldImageType::Pointer 
VectorFieldImagePointer
 
typedef
VectorFieldImageType::SizeType 
VectorFieldSizeType
 
typedef ImageRegionIterator
< VectorFieldImageType
VectorFieldIteratorType
 
typedef
ImageRegionConstIterator
< VectorFieldImageType
VectorFieldConstIteratorType
 
typedef VectorFieldPixelType DeformationFieldPixelType
 
typedef VectorFieldImageType DeformationFieldType
 
typedef
DeformationFieldType::Pointer 
DeformationFieldPointer
 
typedef ImageRegion< NDimensions > DeformationFieldRegionType
 
typedef
DeformationFieldRegionType::IndexType 
DeformationFieldIndexType
 
typedef
DeformationFieldRegionType::SizeType 
DeformationFieldSizeType
 
typedef
DeformationFieldType::SpacingType 
DeformationFieldSpacingType
 
typedef
DeformationFieldType::DirectionType 
DeformationFieldDirectionType
 
typedef
DeformationFieldType::PointType 
DeformationFieldOriginType
 
typedef Image
< TDeformationScalar,
NDimensions > 
DeformationFieldComponentImageType
 
typedef TFixedImage FixedImageType
 
typedef
FixedImageType::ConstPointer 
FixedImagePointer
 
typedef Transform< TScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SpaceDimension)> 
GlobalTransformType
 
typedef
GlobalTransformType::ConstPointer 
GlobalTransformPointer
 
typedef
DisplacementFieldJacobianDeterminantFilter
< DeformationFieldType,
TScalarType > 
JacobianDeterminantFilterType
 
typedef
JacobianDeterminantFilterType::Pointer 
JacobianDeterminantFilterPointer
 
typedef Superclass::JacobianType JacobianType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
virtual void SetGlobalTransform (const GlobalTransformType *_arg)
 
virtual const GlobalTransformTypeGetGlobalTransform ()
 
virtual void SetInverseSearchRadius (double _arg)
 
virtual double GetInverseSearchRadius ()
 
virtual const ParametersTypeGetParameters (void) const
 
virtual void SetParameters (const ParametersType &parameters)
 
virtual NumberOfParametersType GetNumberOfParameters (void) const
 
virtual void SetParametersFromField (const VectorFieldImagePointer &image, bool force=false)
 
virtual DeformationFieldTypeGetDeformationField () const
 
TScalarType ComputeMaxDeformation ()
 
TScalarType ComputeMinDeformation ()
 
TScalarType ComputeMaxJacobian ()
 
TScalarType ComputeMinJacobian ()
 
TScalarType GetSumLogJacobianDeterminant ()
 
virtual void WriteTransform (std::string filename)
 
virtual void WriteParameters (std::string filename)
 
void WriteJacobianImage (std::string filename)
 
void WriteMidasStrImage (std::string filename, int origin[NDimensions], typename TFixedImage::RegionType paddedDesiredRegion, const typename JacobianDeterminantFilterType::OutputImageType *jacobianImage)
 
void ReadMidasStrImage (std::string filename, int origin[NDimensions], typename TFixedImage::RegionType paddedDesiredRegion, typename JacobianDeterminantFilterType::OutputImageType *jacobianImage)
 
void WriteMidasVecImage (std::string filename, int origin[NDimensions], typename TFixedImage::RegionType paddedDesiredRegion)
 
void WriteVectorImage (std::string filename)
 
virtual void SetIdentity ()
 
void Initialize (FixedImagePointer image)
 
virtual OutputPointType TransformPoint (const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual bool IsLinear () const
 
virtual bool IsIdentity ()
 
virtual const ParametersTypeGetFixedParameters (void) const
 
virtual void SetFixedParameters (const ParametersType &parameters)
 
bool GetInverse (Self *inverse) const
 
void ConcatenateAfterGivenTransform (Self *givenTransform)
 
virtual bool IsRegridable () const
 
virtual void UpdateRegriddedDeformationParameters (ParametersType &regriddedParameters, const ParametersType &currentPosition)
 
void SetUseForwardDifferenceJacobianCalculation ()
 
void InitialiseGlobalTransformation ()
 
JacobianDeterminantFilterType::OutputImageType * GetJacobianImage () const
 
void ExtractComponents ()
 
void InvertUsingIterativeFixedPoint (typename Self::Pointer invertedTransform, int maxIterations, int maxOuterIterations, double tol)
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const
 

Protected Member Functions

 DeformableTransform ()
 
virtual ~DeformableTransform ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
unsigned long int GetNumberOfParametersImpliedByImage (const VectorFieldImagePointer image)
 
void ResizeParametersArray (const VectorFieldImagePointer image)
 
void MarshallParametersToImage (VectorFieldImagePointer image)
 
void MarshallImageToParameters (const VectorFieldImagePointer image, ParametersType &parameters)
 
virtual
JacobianDeterminantFilterType::OutputImageRegionType 
GetValidJacobianRegion () const
 

Protected Attributes

DeformationFieldType::Pointer m_DeformationField
 
GlobalTransformPointer m_GlobalTransform
 
JacobianDeterminantFilterPointer m_JacobianFilter
 
double m_InverseSearchRadius
 
double m_InverseVoxelTolerance
 
double m_InverseIterationTolerance
 
double m_MaxNumberOfInverseIterations
 
DeformationFieldComponentImageType::Pointer m_DeformationFieldComponent [NDimensions]
 

Detailed Description

template<class TFixedImage, class TScalarType, unsigned int NDimensions, class TDeformationScalar>
class itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >

Base class for deformable transforms.

For both UCLBSplineTransform and FluidDeformableTransform, the transformation is represented as an image of vectors, one vector per voxel. Its parameterisation depends on derived classes. So, for Fluid, you are actually working at the voxel level, and for BSpline/FFD based transformation, the transformation is parameterized by the control point grid, and interpolated to each voxel.

The optimizer API requires SetParameters() and GetParameters(). So, this class provides protected utility methods GetNumberOfParametersImpliedByImage, ResizeParametersArray and MarshallParametersToImage to marshall parameters from the array representation to an image. In both cases, the transformation owns its internal parameter array, and should be responsible for resizing it, and deciding if its the right size.

Don't forget that even though the transformation owns its internal parameter array, such that GetParameters returns a reference to the parameters contained herein, the optimizer class provides new parameters arrays throughout the optimisation. This means that when the optimizer calls transform->SetParameters(&parameters), then the argument is passed by reference, and the parameters are copied to the parameters array within this class.

This class also provides a Global transform. This can be any parametric transform using the standard ITK Transform class hierarchy. If this has been set then calling TransformPoint will multiply the point by the Global transform (for example an affine one), and then add the deformation vector onto the point.

TODO: We haven't tested this Global transform. I think you would actually need to interpolate the vector field. So, in most cases, you are better off sorting out your affine transform, resampling, and then just doing deformable stuff on pre-registered images.

See also
UCLBSplineTransform, FluidDeformableTransform.

Member Typedef Documentation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef SmartPointer<const Self> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ConstPointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Image<TDeformationScalar, NDimensions> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldComponentImageType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldType::DirectionType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldDirectionType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldRegionType::IndexType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldIndexType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldType::PointType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldOriginType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef VectorFieldPixelType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldPixelType

Both Fluid and FFD will represent the deformation field as a vector at each point in an image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldType::Pointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldPointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef ImageRegion<NDimensions> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldRegionType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldRegionType::SizeType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldSizeType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformationFieldType::SpacingType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldSpacingType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef VectorFieldImageType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformationFieldType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Array<ParametersValueType> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DerivativeType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef FixedImageType::ConstPointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::FixedImagePointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef TFixedImage itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::FixedImageType

The deformation field is defined over the fixed image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef GlobalTransformType::ConstPointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GlobalTransformPointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Transform<TScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SpaceDimension)> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GlobalTransformType

Typedef of the bulk transform, i.e. we set up an affine transform.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::InputCovariantVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InputCovariantVectorType

Standard covariant vector type for this class

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::InputPointType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InputPointType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::InputVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InputVectorType

Standard vector type for this class.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::InputVnlVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InputVnlVectorType

Standard vnl_vector type for this class.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef JacobianDeterminantFilterType::Pointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::JacobianDeterminantFilterPointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DisplacementFieldJacobianDeterminantFilter< DeformationFieldType, TScalarType > itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::JacobianDeterminantFilterType

Typedef for Jacobian Calculator.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::JacobianType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::JacobianType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::NumberOfParametersType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::NumberOfParametersType

Standard parameters container.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::OutputCovariantVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::OutputCovariantVectorType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::OutputPointType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::OutputPointType

Standard coordinate point type for this class.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::OutputVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::OutputVectorType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::OutputVnlVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::OutputVnlVectorType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::ParametersType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ParametersType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::ParametersValueType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ParametersValueType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef SmartPointer<Self> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::Pointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Superclass::ScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ScalarType

Standard scalar type for this class.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef DeformableTransform itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::Self

Standard class typedefs.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Transform< TScalarType, NDimensions, NDimensions > itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::Superclass
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef ImageRegionConstIterator<VectorFieldImageType> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldConstIteratorType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef VectorFieldImageType::Pointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldImagePointer
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Image< VectorFieldPixelType, NDimensions > itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldImageType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef ImageRegionIterator<VectorFieldImageType> itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldIteratorType
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef Vector< TDeformationScalar, NDimensions > itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldPixelType

These are so we can marshall parameters into an image of either control points, or voxels.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
typedef VectorFieldImageType::SizeType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::VectorFieldSizeType

Constructor & Destructor Documentation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::DeformableTransform ( )
protected
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::~DeformableTransform ( )
protectedvirtual

Member Function Documentation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ComputeJacobianWithRespectToParameters ( const InputPointType ,
JacobianType  
) const
inlinevirtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
TScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ComputeMaxDeformation ( )

Actually run through the deformation field, and calculate the max deformation. This is the maximum magnitude of a deformation vector (not of the individual component in x,y,z).

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
TScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ComputeMaxJacobian ( )

Actually run through the deformation field, and calculate the max jacobian.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
TScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ComputeMinDeformation ( )

Actually run through the deformation field, and calculate the min deformation. This is the minimum magnitude of a deformation vector (not of the individual component in x,y,z).

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
TScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ComputeMinJacobian ( )

Actually run through the deformation field, and calculate the min jacobian.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ConcatenateAfterGivenTransform ( Self givenTransform)

Concatenate the current deformation field after the given deformation field

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ExtractComponents ( )

Extract the x, y, z components of the vector deformation field into 3 images.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual const char* itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetClassName ( ) const
virtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual DeformationFieldType* itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetDeformationField ( ) const
inlinevirtual

Get the deformation field pointer.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual const ParametersType& itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetFixedParameters ( void  ) const
virtual

Get the fixed parameters for saving.

Reimplemented in itk::UCLBSplineTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual const GlobalTransformType* itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetGlobalTransform ( )
virtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
bool itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetInverse ( Self inverse) const

Create inverse of a deformable transformation according to Methods for inverting dense displacement fields: Evaluation in brain image registration, Crum et al, MICCAI, 2007.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual double itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetInverseSearchRadius ( )
virtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
JacobianDeterminantFilterType::OutputImageType* itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetJacobianImage ( ) const
inline

Get the Jacobian image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual NumberOfParametersType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetNumberOfParameters ( void  ) const
inlinevirtual

Return the number of parameters that completely define the Transfom

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
unsigned long int itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetNumberOfParametersImpliedByImage ( const VectorFieldImagePointer  image)
protected

Works out the number of parameters implied by the image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual const ParametersType& itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetParameters ( void  ) const
inlinevirtual

Return the transformation parameters.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
TScalarType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetSumLogJacobianDeterminant ( )

Calculate the log of the jacobian determinant at each voxel.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual JacobianDeterminantFilterType::OutputImageRegionType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::GetValidJacobianRegion ( ) const
inlineprotectedvirtual

To get the valid Jacobian region - because for fluid Diriac boundary condition - the deformation around the edge is 0.

Reimplemented in itk::FluidDeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InitialiseGlobalTransformation ( )

Iniitilise the deformation field with the global transformation.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::Initialize ( FixedImagePointer  image)

Convenience method to set up internal deformation field to the same size as the supplied image. In this method, we can't set up a corresponding m_Parameters array, as different subclasses will have different requirements.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::InvertUsingIterativeFixedPoint ( typename Self::Pointer  invertedTransform,
int  maxIterations,
int  maxOuterIterations,
double  tol 
)

Invert using fixed point iteration.

Recommended values: maxIterations=30 maxOuterIterations=5 tol=0.001

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual bool itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::IsIdentity ( )
virtual

Returns true if we are currently equal to Identity transform.

Reimplemented in itk::FluidDeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual bool itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::IsLinear ( ) const
inlinevirtual

Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then

      T( a*P + b*Q ) = a * T(P) + b * T(Q)
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual bool itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::IsRegridable ( ) const
inlinevirtual

Return true if the deformable is regriddable. This then requires the implementation the Regrid function.

Reimplemented in itk::FluidDeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
NDimensions   
)

Dimension of the domain space.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::MarshallImageToParameters ( const VectorFieldImagePointer  image,
ParametersType parameters 
)
protected

To Convert image to parameters array.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::MarshallParametersToImage ( VectorFieldImagePointer  image)
protected

To Convert parameters array to an image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

Print contents of an FluidDeformableTransform.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ReadMidasStrImage ( std::string  filename,
int  origin[NDimensions],
typename TFixedImage::RegionType  paddedDesiredRegion,
typename JacobianDeterminantFilterType::OutputImageType *  jacobianImage 
)

Write the Midas jacobian image of the deformation field out to the given filename.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::ResizeParametersArray ( const VectorFieldImagePointer  image)
protected

Makes the parameters array match the size of the image, and resets everything.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetFixedParameters ( const ParametersType parameters)
virtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetGlobalTransform ( const GlobalTransformType _arg)
virtual

This method specifies the bulk transform to be applied.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetIdentity ( )
virtual

Set the parameters array to Identity. Doesn't affect the Global transform. Doesn't resize anything either.

Reimplemented in itk::UCLBSplineTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >, and itk::FluidDeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetInverseSearchRadius ( double  _arg)
virtual

Set/Get the search radius (voxel unit) for computing the inverse.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetParameters ( const ParametersType parameters)
inlinevirtual
template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetParametersFromField ( const VectorFieldImagePointer image,
bool  force = false 
)
virtual

Sets the transformation parameters from an image. The parameter 'force' is to force parameter array to the right size. If force is false, and the parameters array is the wrong size, an exception is thrown. If force is true, the parameters array is resized.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::SetUseForwardDifferenceJacobianCalculation ( )
inline

Call to set the Jacobian calculation to be using the forward difference. This function should be called immediately after constructing the deformable transform.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual OutputCovariantVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::TransformCovariantVector ( const InputCovariantVectorType ) const
inlinevirtual

Method to transform a CovariantVector - not applicable for this type of transform

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual OutputPointType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::TransformPoint ( const InputPointType point) const
virtual

Declared virtual in base class, transform points

Reimplemented in itk::UCLBSplineTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual OutputVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::TransformVector ( const InputVectorType ) const
inlinevirtual

Method to transform a vector - not applicable for this type of transform.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual OutputVnlVectorType itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::TransformVector ( const InputVnlVectorType ) const
inlinevirtual

Method to transform a vnl_vector - not applicable for this type of transform

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::UpdateRegriddedDeformationParameters ( ParametersType regriddedParameters,
const ParametersType currentPosition 
)
inlinevirtual

Regrid and compose the new regridded deformation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteJacobianImage ( std::string  filename)

Write the jacobian image of the deformation field out to the given filename.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteMidasStrImage ( std::string  filename,
int  origin[NDimensions],
typename TFixedImage::RegionType  paddedDesiredRegion,
const typename JacobianDeterminantFilterType::OutputImageType *  jacobianImage 
)

Write the Midas jacobian image of the deformation field out to the given filename.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteMidasVecImage ( std::string  filename,
int  origin[NDimensions],
typename TFixedImage::RegionType  paddedDesiredRegion 
)

Write the Midas vector image of the deformation field out to the given filename.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteParameters ( std::string  filename)
inlinevirtual

Write parameters, so subclass can override if necessary. Default implementation is suitable for Fluid.

Reimplemented in itk::UCLBSplineTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
virtual void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteTransform ( std::string  filename)
inlinevirtual

Write transform, so subclass can override it if necessary. Default implementation is suitable for Fluid.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
void itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::WriteVectorImage ( std::string  filename)

Write the vector image of the deformation field out to the given filename.

Member Data Documentation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
DeformationFieldType::Pointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_DeformationField
protected

The deformation/displacement field, represented as an image.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
DeformationFieldComponentImageType::Pointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_DeformationFieldComponent[NDimensions]
protected

Hold the x, y, z components of the deformation field.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
GlobalTransformPointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_GlobalTransform
protected

The global transform.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
double itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_InverseIterationTolerance
protected

Tolerance for checking in the iteration if the forward transformation is close to the source image grid.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
double itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_InverseSearchRadius
protected

Search radius for calculating the inverse transformation

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
double itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_InverseVoxelTolerance
protected

Tolerance for checking if the forward transformation hits the source image grid.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
JacobianDeterminantFilterPointer itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_JacobianFilter
protected

Jacobian Filter. Currently no need to expose this publically, so no Setter/Getter.

template<class TFixedImage , class TScalarType , unsigned int NDimensions, class TDeformationScalar >
double itk::DeformableTransform< TFixedImage, TScalarType, NDimensions, TDeformationScalar >::m_MaxNumberOfInverseIterations
protected

Maximum number of iteration in the inverse computaion.


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