SimpleITK  
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
itk::simple::DisplacementFieldTransform Class Reference

A dense deformable transform over a bounded spatial domain for 2D or 3D coordinates space. More...

#include <sitkDisplacementFieldTransform.h>

+ Inheritance diagram for itk::simple::DisplacementFieldTransform:
+ Collaboration diagram for itk::simple::DisplacementFieldTransform:

Classes

struct  MyVisitor
 

Public Types

using Self = DisplacementFieldTransform
 
using Superclass = Transform
 
- Public Types inherited from itk::simple::Transform
using Self = Transform
 

Public Member Functions

 DisplacementFieldTransform (const DisplacementFieldTransform &)
 
 DisplacementFieldTransform (const Transform &)
 
 DisplacementFieldTransform (Image &)
 Consume an image to construct a displacement field transform. More...
 
 DisplacementFieldTransform (unsigned int dimensions)
 
Image GetDisplacementField () const
 
Image GetInverseDisplacementField () const
 
std::string GetName () const override
 
DisplacementFieldTransformoperator= (const DisplacementFieldTransform &)
 
SelfSetDisplacementField (Image &)
 Consume an image, and set the displacement field. More...
 
SelfSetInterpolator (InterpolatorEnum interp)
 
SelfSetInverseDisplacementField (Image &)
 
SelfSetSmoothingBSplineOnUpdate (const std::vector< unsigned int > &numberOfControlPointsForUpdateField=std::vector< unsigned int >(3, 4), const std::vector< unsigned int > &numberOfControlPointsForTotalField=std::vector< unsigned int >(3, 4), bool enforceStationaryBoundary=true, unsigned int order=3)
 
SelfSetSmoothingGaussianOnUpdate (double varianceForUpdateField=1.75, double varianceForTotalField=0.5)
 
SelfSetSmoothingOff ()
 
 ~DisplacementFieldTransform () override
 
- Public Member Functions inherited from itk::simple::Transform
unsigned int GetDimension () const
 
Transform GetInverse () const
 Return a new inverse transform of the same type as this. More...
 
unsigned int GetNumberOfFixedParameters () const
 
unsigned int GetNumberOfParameters () const
 
TransformEnum GetTransformEnum () const
 Get the TransformEnum of the underlying Transform. More...
 
virtual bool IsLinear () const
 
void MakeUnique ()
 Performs actually coping if needed to make object unique. More...
 
virtual void SetIdentity ()
 
virtual bool SetInverse ()
 Try to change the current transform to it's inverse. More...
 
std::string ToString () const
 
 Transform ()
 By default a 3-d identity transform is constructed. More...
 
 Transform (Image &displacement, TransformEnum type=sitkDisplacementField)
 Use an image to construct a transform. More...
 
template<unsigned int NDimension>
 Transform (itk::CompositeTransform< double, NDimension > *compositeTransform)
 Construct a SimpleITK Transform from a pointer to an ITK composite transform. More...
 
 Transform (itk::TransformBase *transform)
 
 Transform (unsigned int dimensions, TransformEnum type)
 Construct a specific transformation. More...
 
std::vector< double > TransformPoint (const std::vector< double > &point) const
 
std::vector< double > TransformVector (const std::vector< double > &vector, const std::vector< double > &point) const
 
void WriteTransform (const std::string &filename) const
 
virtual ~Transform ()
 
Transformoperator= (const Transform &)
 Copy constructor and assignment operator. More...
 
 Transform (const Transform &)
 Copy constructor and assignment operator. More...
 
itk::TransformBaseGetITKBase ()
 
const itk::TransformBaseGetITKBase () const
 
void SetParameters (const std::vector< double > &parameters)
 
std::vector< double > GetParameters () const
 
void SetFixedParameters (const std::vector< double > &parameters)
 
std::vector< double > GetFixedParameters () const
 

Protected Member Functions

void SetPimpleTransform (std::unique_ptr< PimpleTransformBase > &&pimpleTransform) override
 
- Protected Member Functions inherited from itk::simple::Transform
 Transform (PimpleTransformBase *pimpleTransform)
 

Private Member Functions

void InternalInitialization (itk::TransformBase *transform)
 
template<typename TransformType >
void InternalInitialization (TransformType *transform)
 
template<typename TDisplacementFieldTransform >
void InternalSetSmoothingBSplineOnUpdate (TDisplacementFieldTransform *itkDisplacement, const std::vector< unsigned int > &numberOfControlPointsForUpdateField, const std::vector< unsigned int > &numberOfControlPointsForTotalField, bool enforceStationaryBoundary, unsigned int order)
 
template<typename TDisplacementFieldTransform >
void InternalSetSmoothingGaussianOnUpdate (TDisplacementFieldTransform *itkDisplacement, double varianceForUpdateField, double varianceForTotalField)
 
template<typename TDisplacementFieldTransform >
void InternalSetSmoothingOff (TDisplacementFieldTransform *itkDisplacement)
 

Static Private Member Functions

static PimpleTransformBase * CreateDisplacementFieldPimpleTransform (unsigned int dimension)
 
template<typename TDisplacementFieldTransform >
static Image InternalGetDisplacementField (const TDisplacementFieldTransform *itkDisplacementTx)
 
template<typename TDisplacementFieldTransform >
static Image InternalGetInverseDisplacementField (const TDisplacementFieldTransform *itkDisplacementTx)
 

Private Attributes

std::function< Image()> m_pfGetDisplacementField
 
std::function< InterpolatorEnum()> m_pfGetInterpolator
 
std::function< Image()> m_pfGetInverseDisplacementField
 
std::function< void(Image &)> m_pfSetDisplacementField
 
std::function< void(InterpolatorEnum &)> m_pfSetInterpolator
 
std::function< void(Image &)> m_pfSetInverseDisplacementField
 
std::function< void(const std::vector< unsigned int > &, const std::vector< unsigned int > &, bool, unsigned int)> m_pfSetSmoothingBSplineOnUpdate
 
std::function< void(double, double)> m_pfSetSmoothingGaussianOnUpdate
 
std::function< void()> m_pfSetSmoothingOff
 

Detailed Description

A dense deformable transform over a bounded spatial domain for 2D or 3D coordinates space.

See also
itk::DisplacementFieldTransform
Examples
DemonsRegistration1/DemonsRegistration1.cxx, DemonsRegistration2/DemonsRegistration2.cxx, and ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.cxx.

Definition at line 34 of file sitkDisplacementFieldTransform.h.

Member Typedef Documentation

◆ Self

Definition at line 37 of file sitkDisplacementFieldTransform.h.

◆ Superclass

Definition at line 38 of file sitkDisplacementFieldTransform.h.

Constructor & Destructor Documentation

◆ ~DisplacementFieldTransform()

itk::simple::DisplacementFieldTransform::~DisplacementFieldTransform ( )
override

◆ DisplacementFieldTransform() [1/4]

itk::simple::DisplacementFieldTransform::DisplacementFieldTransform ( unsigned int  dimensions)
explicit

◆ DisplacementFieldTransform() [2/4]

itk::simple::DisplacementFieldTransform::DisplacementFieldTransform ( Image )
explicit

Consume an image to construct a displacement field transform.

Warning
The input displacement image is transferred to the constructed transform object. The input image is modified to be a default constructed Image object.

Image must be of sitkVectorFloat64 pixel type with the number of components equal to the image dimension.

◆ DisplacementFieldTransform() [3/4]

itk::simple::DisplacementFieldTransform::DisplacementFieldTransform ( const DisplacementFieldTransform )

◆ DisplacementFieldTransform() [4/4]

itk::simple::DisplacementFieldTransform::DisplacementFieldTransform ( const Transform )
explicit

Member Function Documentation

◆ CreateDisplacementFieldPimpleTransform()

static PimpleTransformBase* itk::simple::DisplacementFieldTransform::CreateDisplacementFieldPimpleTransform ( unsigned int  dimension)
staticprivate

◆ GetDisplacementField()

Image itk::simple::DisplacementFieldTransform::GetDisplacementField ( ) const
Todo:
The returned image should not directly modify the internal displacement field.

◆ GetInverseDisplacementField()

Image itk::simple::DisplacementFieldTransform::GetInverseDisplacementField ( ) const
Todo:
The returned image is should not directly modify the internal displacement field.

◆ GetName()

std::string itk::simple::DisplacementFieldTransform::GetName ( ) const
inlineoverridevirtual

Name of this class

Reimplemented from itk::simple::Transform.

Definition at line 65 of file sitkDisplacementFieldTransform.h.

◆ InternalGetDisplacementField()

template<typename TDisplacementFieldTransform >
static Image itk::simple::DisplacementFieldTransform::InternalGetDisplacementField ( const TDisplacementFieldTransform *  itkDisplacementTx)
staticprivate

◆ InternalGetInverseDisplacementField()

template<typename TDisplacementFieldTransform >
static Image itk::simple::DisplacementFieldTransform::InternalGetInverseDisplacementField ( const TDisplacementFieldTransform *  itkDisplacementTx)
staticprivate

◆ InternalInitialization() [1/2]

void itk::simple::DisplacementFieldTransform::InternalInitialization ( itk::TransformBase transform)
private

◆ InternalInitialization() [2/2]

template<typename TransformType >
void itk::simple::DisplacementFieldTransform::InternalInitialization ( TransformType *  transform)
private

◆ InternalSetSmoothingBSplineOnUpdate()

template<typename TDisplacementFieldTransform >
void itk::simple::DisplacementFieldTransform::InternalSetSmoothingBSplineOnUpdate ( TDisplacementFieldTransform *  itkDisplacement,
const std::vector< unsigned int > &  numberOfControlPointsForUpdateField,
const std::vector< unsigned int > &  numberOfControlPointsForTotalField,
bool  enforceStationaryBoundary,
unsigned int  order 
)
private

◆ InternalSetSmoothingGaussianOnUpdate()

template<typename TDisplacementFieldTransform >
void itk::simple::DisplacementFieldTransform::InternalSetSmoothingGaussianOnUpdate ( TDisplacementFieldTransform *  itkDisplacement,
double  varianceForUpdateField,
double  varianceForTotalField 
)
private

◆ InternalSetSmoothingOff()

template<typename TDisplacementFieldTransform >
void itk::simple::DisplacementFieldTransform::InternalSetSmoothingOff ( TDisplacementFieldTransform *  itkDisplacement)
private

◆ operator=()

DisplacementFieldTransform& itk::simple::DisplacementFieldTransform::operator= ( const DisplacementFieldTransform )

◆ SetDisplacementField()

Self& itk::simple::DisplacementFieldTransform::SetDisplacementField ( Image )

Consume an image, and set the displacement field.

parameters

Warning
The ownership of the input displacement image is transferred to the constructed transform object. The input image is modified to be a default constructed Image object.

Image must be of sitkVectorFloat64 pixel type with the number of components equal to the image dimension.

◆ SetInterpolator()

Self& itk::simple::DisplacementFieldTransform::SetInterpolator ( InterpolatorEnum  interp)

Set the interpolator used between the field voxels.

◆ SetInverseDisplacementField()

Self& itk::simple::DisplacementFieldTransform::SetInverseDisplacementField ( Image )

fixed parameter

◆ SetPimpleTransform()

void itk::simple::DisplacementFieldTransform::SetPimpleTransform ( std::unique_ptr< PimpleTransformBase > &&  pimpleTransform)
overrideprotectedvirtual

Reimplemented from itk::simple::Transform.

◆ SetSmoothingBSplineOnUpdate()

Self& itk::simple::DisplacementFieldTransform::SetSmoothingBSplineOnUpdate ( const std::vector< unsigned int > &  numberOfControlPointsForUpdateField = std::vector< unsigned int >(3, 4),
const std::vector< unsigned int > &  numberOfControlPointsForTotalField = std::vector< unsigned int >(3, 4),
bool  enforceStationaryBoundary = true,
unsigned int  order = 3 
)

◆ SetSmoothingGaussianOnUpdate()

Self& itk::simple::DisplacementFieldTransform::SetSmoothingGaussianOnUpdate ( double  varianceForUpdateField = 1.75,
double  varianceForTotalField = 0.5 
)

◆ SetSmoothingOff()

Self& itk::simple::DisplacementFieldTransform::SetSmoothingOff ( )

Member Data Documentation

◆ m_pfGetDisplacementField

std::function<Image()> itk::simple::DisplacementFieldTransform::m_pfGetDisplacementField
private

Definition at line 176 of file sitkDisplacementFieldTransform.h.

◆ m_pfGetInterpolator

std::function<InterpolatorEnum()> itk::simple::DisplacementFieldTransform::m_pfGetInterpolator
private

Definition at line 182 of file sitkDisplacementFieldTransform.h.

◆ m_pfGetInverseDisplacementField

std::function<Image()> itk::simple::DisplacementFieldTransform::m_pfGetInverseDisplacementField
private

Definition at line 179 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetDisplacementField

std::function<void(Image &)> itk::simple::DisplacementFieldTransform::m_pfSetDisplacementField
private

Definition at line 175 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetInterpolator

std::function<void(InterpolatorEnum &)> itk::simple::DisplacementFieldTransform::m_pfSetInterpolator
private

Definition at line 181 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetInverseDisplacementField

std::function<void(Image &)> itk::simple::DisplacementFieldTransform::m_pfSetInverseDisplacementField
private

Definition at line 178 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetSmoothingBSplineOnUpdate

std::function<void(const std::vector<unsigned int> &, const std::vector<unsigned int> &, bool, unsigned int)> itk::simple::DisplacementFieldTransform::m_pfSetSmoothingBSplineOnUpdate
private

Definition at line 187 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetSmoothingGaussianOnUpdate

std::function<void(double, double)> itk::simple::DisplacementFieldTransform::m_pfSetSmoothingGaussianOnUpdate
private

Definition at line 185 of file sitkDisplacementFieldTransform.h.

◆ m_pfSetSmoothingOff

std::function<void()> itk::simple::DisplacementFieldTransform::m_pfSetSmoothingOff
private

Definition at line 184 of file sitkDisplacementFieldTransform.h.


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