ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension > Class Template Reference

#include <itkTimeVaryingVelocityFieldTransform.h>

Detailed Description

template<typename TParametersValueType, unsigned int VDimension>
class itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >

Transform objects based on integration of a time-varying velocity field.

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 first-order differential equation:

\[ v(\phi(x,t), t) = \frac{d\phi(x, t)}{dt}, \phi(x, 0) = x \]

In this class, the input is the time-varying velocity field. The output diffeomorphism is produced using fourth order Runge-Kutta.

Warning
The output deformation field needs to have dimensionality of 1 less than the input time-varying velocity field. It is assumed that the last dimension of the time-varying velocity field corresponds to Time, and the other dimensions represent Space.
Author
Nick Tustison
Brian Avants

Definition at line 54 of file itkTimeVaryingVelocityFieldTransform.h.

+ Inheritance diagram for itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >:
+ Collaboration diagram for itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using FixedParametersValueType = typename FixedParametersType::ValueType
 
using ParametersValueType = typename ParametersType::ValueType
 
using Pointer = SmartPointer< Self >
 
using Self = TimeVaryingVelocityFieldTransform
 
using Superclass = VelocityFieldTransform< TParametersValueType, VDimension >
 
using TimeVaryingVelocityFieldPointer = typename VelocityFieldType::Pointer
 
using TimeVaryingVelocityFieldType = VelocityFieldType
 
using TransformPointer = typename Transform< TParametersValueType, VDimension, VDimension >::Pointer
 
using VelocityFieldIntegratorType = typename Superclass::VelocityFieldInterpolatorType
 
- Public Types inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
using ConstPointer = SmartPointer< const Self >
 
using DirectionType = typename VelocityFieldType::DirectionType
 
using DisplacementFieldPointer = typename DisplacementFieldType::Pointer
 
using IndexType = typename VelocityFieldType::IndexType
 
using OptimizerParametersHelperType = ImageVectorOptimizerParametersHelper< ScalarType, Dimension, VelocityFieldDimension >
 
using PixelType = typename VelocityFieldType::PixelType
 
using Pointer = SmartPointer< Self >
 
using PointType = typename VelocityFieldType::PointType
 
using RegionType = typename VelocityFieldType::RegionType
 
using Self = VelocityFieldTransform
 
using SizeType = typename VelocityFieldType::SizeType
 
using SpacingType = typename VelocityFieldType::SpacingType
 
using Superclass = DisplacementFieldTransform< TParametersValueType, VDimension >
 
using VelocityFieldInterpolatorPointer = typename VelocityFieldInterpolatorType::Pointer
 
using VelocityFieldInterpolatorType = VectorInterpolateImageFunction< VelocityFieldType, ScalarType >
 
using VelocityFieldPointer = typename VelocityFieldType::Pointer
 
using VelocityFieldType = Image< OutputVectorType, VelocityFieldDimension >
 
- Public Types inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
using ConstPointer = SmartPointer< const Self >
 
using DirectionType = typename DisplacementFieldType::DirectionType
 
using DisplacementFieldConstPointer = typename DisplacementFieldType::ConstPointer
 
using DisplacementFieldPointer = typename DisplacementFieldType::Pointer
 
using DisplacementFieldType = Image< OutputVectorType, Dimension >
 
using IndexType = typename DisplacementFieldType::IndexType
 
using InputTensorEigenVectorType = CovariantVector< ScalarType, InputDiffusionTensor3DType::Dimension >
 
using InterpolatorType = VectorInterpolateImageFunction< DisplacementFieldType, ScalarType >
 
using OptimizerParametersHelperType = ImageVectorOptimizerParametersHelper< ScalarType, OutputVectorType::Dimension, Dimension >
 
using OutputTensorEigenVectorType = CovariantVector< ScalarType, OutputDiffusionTensor3DType::Dimension >
 
using PixelType = typename DisplacementFieldType::PixelType
 
using Pointer = SmartPointer< Self >
 
using PointType = typename DisplacementFieldType::PointType
 
using RegionType = typename DisplacementFieldType::RegionType
 
using Self = DisplacementFieldTransform
 
using SizeType = typename DisplacementFieldType::SizeType
 
using SpacingType = typename DisplacementFieldType::SpacingType
 
using Superclass = Transform< TParametersValueType, VDimension, VDimension >
 
using VectorImageDisplacementFieldType = VectorImage< TParametersValueType, Dimension >
 
- Public Types inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = Array< ParametersValueType >
 
using DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using InputCovariantVectorType = CovariantVector< TParametersValueType, VInputDimension >
 
using InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension >
 
using InputPointType = Point< TParametersValueType, VInputDimension >
 
using InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VInputDimension >
 
using InputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using InputVectorType = Vector< TParametersValueType, VInputDimension >
 
using InputVnlVectorType = vnl_vector_fixed< TParametersValueType, VInputDimension >
 
using InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension >
 
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer
 
using InverseTransformBaseType = Transform< TParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianPositionType = vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianType = Array2D< ParametersValueType >
 
using MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OutputCovariantVectorType = CovariantVector< TParametersValueType, VOutputDimension >
 
using OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension >
 
using OutputPointType = Point< TParametersValueType, VOutputDimension >
 
using OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VOutputDimension >
 
using OutputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using OutputVectorType = Vector< TParametersValueType, VOutputDimension >
 
using OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, VOutputDimension >
 
using Pointer = SmartPointer< Self >
 
using ScalarType = ParametersValueType
 
using Self = Transform
 
using Superclass = TransformBaseTemplate< TParametersValueType >
 

Public Member Functions

const char * GetNameOfClass () const override
 
void IntegrateVelocityField () override
 
virtual void SetTimeVaryingVelocityField (VelocityFieldType *field)
 
VelocityFieldTypeGetModifiableTimeVaryingVelocityField ()
 
const VelocityFieldTypeGetTimeVaryingVelocityField () const
 
- Public Member Functions inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
bool GetInverse (Self *inverse) const
 
InverseTransformBasePointer GetInverseTransform () const override
 
virtual ScalarType GetLowerTimeBound () const
 
const char * GetNameOfClass () const override
 
virtual unsigned int GetNumberOfIntegrationSteps () const
 
virtual ScalarType GetUpperTimeBound () const
 
virtual const unsigned long & GetVelocityFieldSetTime () const
 
void SetFixedParameters (const FixedParametersType &) override
 
virtual void SetLowerTimeBound (ScalarType _arg)
 
virtual void SetNumberOfIntegrationSteps (unsigned int _arg)
 
virtual void SetUpperTimeBound (ScalarType _arg)
 
void UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0) override
 
virtual void SetVelocityField (VelocityFieldType *)
 
virtual VelocityFieldTypeGetModifiableVelocityField ()
 
virtual void SetVelocityFieldInterpolator (VelocityFieldInterpolatorType *)
 
virtual VelocityFieldInterpolatorTypeGetModifiableVelocityFieldInterpolator ()
 
void SetDisplacementField (DisplacementFieldType *displacementField) override
 
- Public Member Functions inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
void ComputeInverseJacobianWithRespectToPosition (const InputPointType &point, InverseJacobianPositionType &jacobian) const override
 
virtual void ComputeJacobianWithRespectToParameters (const IndexType &, JacobianType &j) const
 
virtual void ComputeJacobianWithRespectToPosition (const IndexType &index, JacobianPositionType &jacobian) const
 
void ComputeJacobianWithRespectToPosition (const InputPointType &point, JacobianPositionType &jacobian) const override
 
virtual const ModifiedTimeTypeGetDisplacementFieldSetTime () const
 
bool GetInverse (Self *inverse) const
 
virtual void GetInverseJacobianOfForwardFieldWithRespectToPosition (const IndexType &index, JacobianPositionType &jacobian, bool useSVD=false) const
 
virtual void GetInverseJacobianOfForwardFieldWithRespectToPosition (const InputPointType &point, JacobianPositionType &jacobian, bool useSVD=false) const
 
const char * GetNameOfClass () const override
 
NumberOfParametersType GetNumberOfLocalParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
virtual void SetIdentity ()
 
OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const override
 
OutputVectorPixelType TransformDiffusionTensor (const InputVectorPixelType &) const
 
OutputPointType TransformPoint (const InputPointType &inputPoint) const override
 
OutputVectorPixelType TransformVector (const InputVectorPixelType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
virtual void SetDisplacementField (VectorImageDisplacementFieldType *field)
 
void SetDisplacementField (std::nullptr_t)=delete
 
virtual DisplacementFieldTypeGetModifiableDisplacementField ()
 
virtual void SetInverseDisplacementField (DisplacementFieldType *inverseField)
 
virtual DisplacementFieldTypeGetModifiableInverseDisplacementField ()
 
virtual void SetInterpolator (InterpolatorType *interpolator)
 
virtual InterpolatorTypeGetModifiableInterpolator ()
 
virtual void SetInverseInterpolator (InterpolatorType *interpolator)
 
virtual InterpolatorTypeGetModifiableInverseInterpolator ()
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputDiffusionTensor3DType TransformDiffusionTensor (const InputDiffusionTensor3DType &) const
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
void SetParameters (const ParametersType &params) override
 
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &j) const override
 
virtual void SetCoordinateTolerance (double _arg)
 
virtual double GetCoordinateTolerance () const
 
virtual void SetDirectionTolerance (double _arg)
 
virtual double GetDirectionTolerance () const
 
- Public Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const
 
void CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override
 
void CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override
 
const FixedParametersType & GetFixedParameters () const override
 
unsigned int GetInputSpaceDimension () const override
 
bool GetInverse (Self *) const
 
const char * GetNameOfClass () const override
 
virtual NumberOfParametersType GetNumberOfFixedParameters () const
 
NumberOfParametersType GetNumberOfParameters () const override
 
unsigned int GetOutputSpaceDimension () const override
 
const ParametersType & GetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
std::string GetTransformTypeAsString () const override
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
void SetParametersByValue (const ParametersType &p) override
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
template< typename TImage > std std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > ApplyToImageMetadata (SmartPointer< TImage > image) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
static Pointer New ()
 
- Static Public Member Functions inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
static Pointer New ()
 

Protected Member Functions

 TimeVaryingVelocityFieldTransform ()=default
 
 ~TimeVaryingVelocityFieldTransform () override=default
 
- Protected Member Functions inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
DisplacementFieldType::Pointer CopyDisplacementField (const DisplacementFieldType *) const
 
LightObject::Pointer InternalClone () const override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 VelocityFieldTransform ()
 
 ~VelocityFieldTransform () override=default
 
- Protected Member Functions inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
 DisplacementFieldTransform ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~DisplacementFieldTransform () override=default
 
- Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
LightObject::Pointer InternalClone () const override
 
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType &, const InverseJacobianPositionType &) const
 
 Transform ()=default
 
 Transform (NumberOfParametersType numberOfParameters)
 
 ~Transform () override=default
 

Additional Inherited Members

- Public Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
InverseJacobianPositionType &jacobian const
 
- Static Public Attributes inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
static constexpr unsigned int Dimension = VDimension
 
static constexpr unsigned int VelocityFieldDimension = VDimension + 1
 
- Static Public Attributes inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
static constexpr unsigned int Dimension = VDimension
 
- Static Public Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static constexpr unsigned int InputSpaceDimension
 
static constexpr unsigned int OutputSpaceDimension
 
- Static Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static InverseTransformBasePointer InvertTransform (const TTransform &transform)
 
- Protected Attributes inherited from itk::VelocityFieldTransform< TParametersValueType, VDimension >
ScalarType m_LowerTimeBound {}
 
unsigned int m_NumberOfIntegrationSteps {}
 
ScalarType m_UpperTimeBound {}
 
VelocityFieldPointer m_VelocityField {}
 
VelocityFieldInterpolatorType::Pointer m_VelocityFieldInterpolator {}
 
unsigned long m_VelocityFieldSetTime {}
 
- Protected Attributes inherited from itk::DisplacementFieldTransform< TParametersValueType, VDimension >
DisplacementFieldType::Pointer m_DisplacementField {}
 
ModifiedTimeType m_DisplacementFieldSetTime { 0 }
 
JacobianType m_IdentityJacobian {}
 
InterpolatorType::Pointer m_Interpolator {}
 
DisplacementFieldType::Pointer m_InverseDisplacementField {}
 
InterpolatorType::Pointer m_InverseInterpolator {}
 
- Protected Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
FixedParametersType m_FixedParameters
 
ParametersType m_Parameters
 

Member Typedef Documentation

◆ ConstPointer

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 64 of file itkTimeVaryingVelocityFieldTransform.h.

◆ FixedParametersValueType

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::FixedParametersValueType = typename FixedParametersType::ValueType

Definition at line 93 of file itkTimeVaryingVelocityFieldTransform.h.

◆ ParametersValueType

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::ParametersValueType = typename ParametersType::ValueType

Definition at line 91 of file itkTimeVaryingVelocityFieldTransform.h.

◆ Pointer

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::Pointer = SmartPointer<Self>

Definition at line 63 of file itkTimeVaryingVelocityFieldTransform.h.

◆ Self

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::Self = TimeVaryingVelocityFieldTransform

Standard class type aliases.

Definition at line 61 of file itkTimeVaryingVelocityFieldTransform.h.

◆ Superclass

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::Superclass = VelocityFieldTransform<TParametersValueType, VDimension>

Definition at line 62 of file itkTimeVaryingVelocityFieldTransform.h.

◆ TimeVaryingVelocityFieldPointer

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::TimeVaryingVelocityFieldPointer = typename VelocityFieldType::Pointer

Definition at line 84 of file itkTimeVaryingVelocityFieldTransform.h.

◆ TimeVaryingVelocityFieldType

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::TimeVaryingVelocityFieldType = VelocityFieldType

Definition at line 83 of file itkTimeVaryingVelocityFieldTransform.h.

◆ TransformPointer

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::TransformPointer = typename Transform<TParametersValueType, VDimension, VDimension>::Pointer

Definition at line 99 of file itkTimeVaryingVelocityFieldTransform.h.

◆ VelocityFieldIntegratorType

template<typename TParametersValueType , unsigned int VDimension>
using itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::VelocityFieldIntegratorType = typename Superclass::VelocityFieldInterpolatorType

Definition at line 77 of file itkTimeVaryingVelocityFieldTransform.h.

Constructor & Destructor Documentation

◆ TimeVaryingVelocityFieldTransform()

template<typename TParametersValueType , unsigned int VDimension>
itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::TimeVaryingVelocityFieldTransform ( )
protecteddefault

◆ ~TimeVaryingVelocityFieldTransform()

template<typename TParametersValueType , unsigned int VDimension>
itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::~TimeVaryingVelocityFieldTransform ( )
overrideprotecteddefault

Member Function Documentation

◆ GetModifiableTimeVaryingVelocityField()

template<typename TParametersValueType , unsigned int VDimension>
VelocityFieldType* itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::GetModifiableTimeVaryingVelocityField ( )
inline

Get the time-varying velocity field.

Definition at line 110 of file itkTimeVaryingVelocityFieldTransform.h.

◆ GetNameOfClass()

template<typename TParametersValueType , unsigned int VDimension>
const char* itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::GetNameOfClass ( ) const
override

◆ GetTimeVaryingVelocityField()

template<typename TParametersValueType , unsigned int VDimension>
const VelocityFieldType* itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::GetTimeVaryingVelocityField ( ) const
inline

Get the time-varying velocity field.

Definition at line 115 of file itkTimeVaryingVelocityFieldTransform.h.

◆ IntegrateVelocityField()

template<typename TParametersValueType , unsigned int VDimension>
void itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::IntegrateVelocityField ( )
overridevirtual

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

Reimplemented from itk::VelocityFieldTransform< TParametersValueType, VDimension >.

◆ New()

template<typename TParametersValueType , unsigned int VDimension>
static Pointer itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::New ( )
static

New macro for creation of through a Smart Pointer

◆ SetTimeVaryingVelocityField()

template<typename TParametersValueType , unsigned int VDimension>
virtual void itk::TimeVaryingVelocityFieldTransform< TParametersValueType, VDimension >::SetTimeVaryingVelocityField ( VelocityFieldType field)
inlinevirtual

Set the time-varying velocity field.

Definition at line 123 of file itkTimeVaryingVelocityFieldTransform.h.


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