ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions > Class Template Reference

#include <itkTimeVaryingBSplineVelocityFieldTransform.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::DisplacementFieldType 
DisplacementFieldControlPointLatticeType
typedef
DisplacementFieldType::DirectionType 
DisplacementFieldDirectionType
typedef
DisplacementFieldType::PointType 
DisplacementFieldPointType
typedef
DisplacementFieldType::SizeType 
DisplacementFieldSizeType
typedef
DisplacementFieldType::SpacingType 
DisplacementFieldSpacingType
typedef
Superclass::DisplacementFieldType 
DisplacementFieldType
typedef
DisplacementFieldType::PixelType 
DisplacementVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InverseTransformBasePointer 
InverseTransformBasePointer
typedef Superclass::JacobianType JacobianType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef Superclass::ParametersType ParametersType
typedef ParametersType::ValueType ParametersValueType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef
TimeVaryingBSplineVelocityFieldTransform 
Self
typedef
TimeVaryingVelocityFieldTransform
< TScalar, NDimensions > 
Superclass
typedef
TimeVaryingVelocityFieldControlPointLatticeType::Pointer 
TimeVaryingVelocityFieldControlPointLatticePointer
typedef Image
< OutputVectorType,
TimeVaryingVelocityFieldDimension
TimeVaryingVelocityFieldControlPointLatticeType
typedef
TimeVaryingVelocityFieldControlPointLatticeType 
TimeVaryingVelocityFieldType
typedef
TimeVaryingVelocityFieldControlPointLatticeType::DirectionType 
VelocityFieldDirectionType
typedef
TimeVaryingVelocityFieldControlPointLatticeType::PointType 
VelocityFieldPointType
typedef
TimeVaryingVelocityFieldControlPointLatticeType::SizeType 
VelocityFieldSizeType
typedef
TimeVaryingVelocityFieldControlPointLatticeType::SpacingType 
VelocityFieldSpacingType

Public Member Functions

bool GetInverse (Self *inverse) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual const char * GetNameOfClass () const
virtual
TimeVaryingVelocityFieldControlPointLatticeType
GetTimeVaryingVelocityFieldControlPointLattice ()
virtual void IntegrateVelocityField ()
virtual void SetFixedParameters (const ParametersType &)
virtual void SetTimeVaryingVelocityFieldControlPointLattice (TimeVaryingVelocityFieldControlPointLatticeType *)
virtual void UpdateTransformParameters (DerivativeType &update, ScalarType factor=1.0)
virtual void SetSplineOrder (unsigned int _arg)
virtual unsigned int GetSplineOrder () const
virtual void SetTemporalPeriodicity (bool _arg)
virtual bool GetTemporalPeriodicity () const
virtual void TemporalPeriodicityOn ()
virtual void TemporalPeriodicityOff ()
virtual void SetVelocityFieldOrigin (VelocityFieldPointType _arg)
virtual VelocityFieldPointType GetVelocityFieldOrigin () const
virtual void SetVelocityFieldSpacing (VelocityFieldSpacingType _arg)
virtual VelocityFieldSpacingType GetVelocityFieldSpacing () const
virtual void SetVelocityFieldSize (VelocityFieldSizeType _arg)
virtual VelocityFieldSizeType GetVelocityFieldSize () const
virtual void SetVelocityFieldDirection (VelocityFieldDirectionType _arg)
virtual VelocityFieldDirectionType GetVelocityFieldDirection () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int Dimension = NDimensions
static const unsigned int TimeVaryingVelocityFieldDimension = NDimensions+1

Protected Member Functions

void PrintSelf (std::ostream &os, Indent indent) const
 TimeVaryingBSplineVelocityFieldTransform ()
virtual ~TimeVaryingBSplineVelocityFieldTransform ()

Private Member Functions

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

Private Attributes

unsigned int m_SplineOrder
bool m_TemporalPeriodicity
TimeVaryingVelocityFieldControlPointLatticePointer m_TimeVaryingVelocityFieldControlPointLattice
VelocityFieldDirectionType m_VelocityFieldDirection
VelocityFieldPointType m_VelocityFieldOrigin
VelocityFieldSizeType m_VelocityFieldSize
VelocityFieldSpacingType m_VelocityFieldSpacing

Detailed Description

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

Integrate a time-varying velocity field represented by a B-spline control point lattice.

Diffeomorphisms are topology-preserving mappings that are useful for describing biologically plausible deformations. Mathematically, a diffeomorphism, $ \phi $, is generated from a time-varying velocity field, v, as described by the integral equation:

\[ \phi(t_b) = \phi(t_a) + \int_{t_a}^{t_b} v(\phi(t),t) dt \]

In typical registration applications it is computationally more efficient to sample the B-spline transform to its corresponding displacement field. Therefore, the user needs to specify the domain parameters of that displacement field using the following functions:

It's important that these parameters match up with the fixed parameters of this transform which are defined as the parameters of the (N+1)-D B-spline grid representing the continuous velocity field. This control point lattice is set using SetTimeVaryingVelocityFieldControlPointLattice() or it can be created by setting the fixed parameters.

Author:
Nick Tustison
Brian Avants

Definition at line 63 of file itkTimeVaryingBSplineVelocityFieldTransform.h.


Member Typedef Documentation

template<class TScalar , unsigned int NDimensions>
typedef SmartPointer<const Self> itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::ConstPointer
template<class TScalar , unsigned int NDimensions>
typedef Superclass::DerivativeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DerivativeType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::DisplacementFieldType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldControlPointLatticeType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::DirectionType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldDirectionType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::PointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldPointType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SizeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldSizeType
template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::SpacingType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldSpacingType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::DisplacementFieldType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementFieldType

Define the displacement field type and corresponding interpolator type.

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

Definition at line 124 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef DisplacementFieldType::PixelType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::DisplacementVectorType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::InputPointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::InputPointType

Standard coordinate point type for this class.

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

Definition at line 95 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

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

Standard vector type for this class.

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

Definition at line 99 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

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

InverseTransform type.

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

Definition at line 78 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

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

The number of parameters defininig this transform.

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

Definition at line 89 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputPointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::OutputPointType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::OutputVectorType
template<class TScalar , unsigned int NDimensions>
typedef Superclass::ParametersType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::ParametersType

Type of the input parameters.

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

Definition at line 87 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef ParametersType::ValueType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::ParametersValueType

Type of the input parameters.

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

Definition at line 88 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef SmartPointer<Self> itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::Pointer
template<class TScalar , unsigned int NDimensions>
typedef Superclass::ScalarType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::ScalarType
template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingBSplineVelocityFieldTransform itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::Self

Standard class typedefs.

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

Definition at line 69 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingVelocityFieldTransform<TScalar, NDimensions> itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::Superclass

Define the time-varying velocity field type.

Definition at line 114 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingVelocityFieldControlPointLatticeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TimeVaryingVelocityFieldType

Define the time-varying velocity field type and corresponding interpolator type.

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

Definition at line 116 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingVelocityFieldControlPointLatticeType::PointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::VelocityFieldPointType
template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingVelocityFieldControlPointLatticeType::SizeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::VelocityFieldSizeType
template<class TScalar , unsigned int NDimensions>
typedef TimeVaryingVelocityFieldControlPointLatticeType::SpacingType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::VelocityFieldSpacingType

Constructor & Destructor Documentation

template<class TScalar , unsigned int NDimensions>
itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TimeVaryingBSplineVelocityFieldTransform ( ) [protected]
template<class TScalar , unsigned int NDimensions>
virtual itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::~TimeVaryingBSplineVelocityFieldTransform ( ) [protected, virtual]
template<class TScalar , unsigned int NDimensions>
itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TimeVaryingBSplineVelocityFieldTransform ( const Self ) [private]

Member Function Documentation

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

Return an inverse of this transform.

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

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

Return an inverse of this transform.

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

template<class TScalar , unsigned int NDimensions>
virtual const char* itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

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

template<class TScalar , unsigned int NDimensions>
virtual unsigned int itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetSplineOrder ( ) const [virtual]

Set/Get spline order.

template<class TScalar , unsigned int NDimensions>
virtual bool itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetTemporalPeriodicity ( ) const [virtual]

Set/Get temporal periodicity.

template<class TScalar , unsigned int NDimensions>
virtual TimeVaryingVelocityFieldControlPointLatticeType* itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetTimeVaryingVelocityFieldControlPointLattice ( ) [virtual]

Get the time-varying velocity field control point lattice.

template<class TScalar , unsigned int NDimensions>
virtual VelocityFieldDirectionType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetVelocityFieldDirection ( ) const [virtual]

Set/Get sampled velocity field direction

template<class TScalar , unsigned int NDimensions>
virtual VelocityFieldPointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetVelocityFieldOrigin ( ) const [virtual]

Set/Get sampled velocity field origin

template<class TScalar , unsigned int NDimensions>
virtual VelocityFieldSizeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetVelocityFieldSize ( ) const [virtual]

Set/Get sampled velocity field size

template<class TScalar , unsigned int NDimensions>
virtual VelocityFieldSpacingType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::GetVelocityFieldSpacing ( ) const [virtual]

Set/Get sampled velocity field spacing

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::IntegrateVelocityField ( ) [virtual]

Trigger the computation of the displacement field by integrating the time-varying velocity field.

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

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

New macro for creation of through a Smart Pointer

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

template<class TScalar , unsigned int NDimensions>
void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::operator= ( const Self ) [private]

Create an identity jacobian for use in ComputeJacobianWithRespectToParameters.

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

template<class TScalar , unsigned int NDimensions>
void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

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::TimeVaryingVelocityFieldTransform< TScalar, NDimensions >.

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

Set the fixed parameters and update internal transformation.

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

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetSplineOrder ( unsigned int  _arg) [virtual]

Set/Get spline order.

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetTemporalPeriodicity ( bool  _arg) [virtual]

Set/Get temporal periodicity.

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetTimeVaryingVelocityFieldControlPointLattice ( TimeVaryingVelocityFieldControlPointLatticeType ) [virtual]

Set the time-varying velocity field control point lattice.

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetVelocityFieldDirection ( VelocityFieldDirectionType  _arg) [virtual]

Set/Get sampled velocity field direction

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetVelocityFieldOrigin ( VelocityFieldPointType  _arg) [virtual]

Set/Get sampled velocity field origin

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetVelocityFieldSize ( VelocityFieldSizeType  _arg) [virtual]

Set/Get sampled velocity field size

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::SetVelocityFieldSpacing ( VelocityFieldSpacingType  _arg) [virtual]

Set/Get sampled velocity field spacing

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TemporalPeriodicityOff ( ) [virtual]

Set/Get temporal periodicity.

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TemporalPeriodicityOn ( ) [virtual]

Set/Get temporal periodicity.

template<class TScalar , unsigned int NDimensions>
virtual void itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::UpdateTransformParameters ( DerivativeType update,
ScalarType  factor = 1.0 
) [virtual]

Update the transform's parameters by the adding values in update to current parameter values. We assume update is of the same length as Parameters. Throw exception otherwise. factor is a scalar multiplier for each value in update. SetParameters is called at the end of this method, to allow transforms to perform any required operations on the update parameters, typically a converion to member variables for use in TransformPoint.

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


Member Data Documentation

template<class TScalar , unsigned int NDimensions>
const unsigned int itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::Dimension = NDimensions [static]

Dimension of the domain spaces.

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

Definition at line 106 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
unsigned int itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_SplineOrder [private]
template<class TScalar , unsigned int NDimensions>
bool itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_TemporalPeriodicity [private]

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

Definition at line 199 of file itkTimeVaryingBSplineVelocityFieldTransform.h.

template<class TScalar , unsigned int NDimensions>
VelocityFieldDirectionType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_VelocityFieldDirection [private]
template<class TScalar , unsigned int NDimensions>
VelocityFieldPointType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_VelocityFieldOrigin [private]
template<class TScalar , unsigned int NDimensions>
VelocityFieldSizeType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_VelocityFieldSize [private]
template<class TScalar , unsigned int NDimensions>
VelocityFieldSpacingType itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::m_VelocityFieldSpacing [private]
template<class TScalar , unsigned int NDimensions>
const unsigned int itk::TimeVaryingBSplineVelocityFieldTransform< TScalar, NDimensions >::TimeVaryingVelocityFieldDimension = NDimensions+1 [static]

Dimension of the time varying velocity field.

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

Definition at line 109 of file itkTimeVaryingBSplineVelocityFieldTransform.h.


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