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::BSplineTransform Class Reference

A deformable transform over a bounded spatial domain using a BSpline representation for a 2D or 3D coordinate space. More...

#include <sitkBSplineTransform.h>

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

Classes

struct  MyVisitor
 

Public Types

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

Public Member Functions

 BSplineTransform (const BSplineTransform &)
 
 BSplineTransform (const std::vector< Image > &coefficientImages, unsigned int order=3)
 
 BSplineTransform (const Transform &)
 
 BSplineTransform (unsigned int dimensions, unsigned int order=3)
 
std::vector< ImageGetCoefficientImages () const
 Get a vector of the coefficient images representing the BSpline. More...
 
std::string GetName () const override
 
unsigned int GetOrder () const
 
std::vector< double > GetTransformDomainDirection () const
 
std::vector< unsigned int > GetTransformDomainMeshSize () const
 
std::vector< double > GetTransformDomainOrigin () const
 
std::vector< double > GetTransformDomainPhysicalDimensions () const
 
BSplineTransformoperator= (const BSplineTransform &)
 
SelfSetTransformDomainDirection (const std::vector< double > &)
 
SelfSetTransformDomainMeshSize (const std::vector< unsigned int > &)
 
SelfSetTransformDomainOrigin (const std::vector< double > &)
 
SelfSetTransformDomainPhysicalDimensions (const std::vector< double > &)
 
 ~BSplineTransform () 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)
 

Static Private Member Functions

static PimpleTransformBase * CreateBSplinePimpleTransform (unsigned int dimension, unsigned int order)
 
template<unsigned int ND>
static PimpleTransformBase * CreateBSplinePimpleTransform (unsigned int order)
 

Private Attributes

std::function< std::vector< Image >)> m_pfGetCoefficientImages
 
std::function< unsigned int()> m_pfGetOrder
 
std::function< std::vector< double >)> m_pfGetTransformDomainDirection
 
std::function< std::vector< unsigned int >)> m_pfGetTransformDomainMeshSize
 
std::function< std::vector< double >)> m_pfGetTransformDomainOrigin
 
std::function< std::vector< double >)> m_pfGetTransformDomainPhysicalDimensions
 
std::function< void(const std::vector< Image > &)> m_pfSetCoefficientImages
 
std::function< void(const std::vector< double > &)> m_pfSetTransformDomainDirection
 
std::function< void(const std::vector< unsigned int > &)> m_pfSetTransformDomainMeshSize
 
std::function< void(const std::vector< double > &)> m_pfSetTransformDomainOrigin
 
std::function< void(const std::vector< double > &)> m_pfSetTransformDomainPhysicalDimensions
 

Detailed Description

A deformable transform over a bounded spatial domain using a BSpline representation for a 2D or 3D coordinate space.

See also
itk::BSplineTransform
Examples
ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.cxx, and ImageRegistrationMethodBSpline3/ImageRegistrationMethodBSpline3.cxx.

Definition at line 33 of file sitkBSplineTransform.h.

Member Typedef Documentation

◆ Self

Definition at line 37 of file sitkBSplineTransform.h.

◆ Superclass

Definition at line 38 of file sitkBSplineTransform.h.

Constructor & Destructor Documentation

◆ ~BSplineTransform()

itk::simple::BSplineTransform::~BSplineTransform ( )
override

◆ BSplineTransform() [1/4]

itk::simple::BSplineTransform::BSplineTransform ( unsigned int  dimensions,
unsigned int  order = 3 
)
explicit

◆ BSplineTransform() [2/4]

itk::simple::BSplineTransform::BSplineTransform ( const std::vector< Image > &  coefficientImages,
unsigned int  order = 3 
)
explicit

Construct a BSpline from a set of coeefficientImages

The coefficient images must be of pixel type sitkFloat64, the number of images must equal the dimension of the transform ( 2 or 3 ), all must be the same dimensions. The image's spacing, origin, size and direction cosine matrix are used to define the transform domain. The transform domain is reduced by the spline order.

◆ BSplineTransform() [3/4]

itk::simple::BSplineTransform::BSplineTransform ( const BSplineTransform )

◆ BSplineTransform() [4/4]

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

Member Function Documentation

◆ CreateBSplinePimpleTransform() [1/2]

static PimpleTransformBase* itk::simple::BSplineTransform::CreateBSplinePimpleTransform ( unsigned int  dimension,
unsigned int  order 
)
staticprivate

◆ CreateBSplinePimpleTransform() [2/2]

template<unsigned int ND>
static PimpleTransformBase* itk::simple::BSplineTransform::CreateBSplinePimpleTransform ( unsigned int  order)
staticprivate

◆ GetCoefficientImages()

std::vector<Image> itk::simple::BSplineTransform::GetCoefficientImages ( ) const

Get a vector of the coefficient images representing the BSpline.

A lazy shallow copy of the images from ITK is performed. If they are modified in SimpleITK a deep copy will occur. However, if the coefficient images are modified in ITK, then no copy will occur and the images held by SimpleITK may unexpectedly change.

◆ GetName()

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

Name of this class

Reimplemented from itk::simple::Transform.

Definition at line 62 of file sitkBSplineTransform.h.

◆ GetOrder()

unsigned int itk::simple::BSplineTransform::GetOrder ( ) const

◆ GetTransformDomainDirection()

std::vector<double> itk::simple::BSplineTransform::GetTransformDomainDirection ( ) const

◆ GetTransformDomainMeshSize()

std::vector<unsigned int> itk::simple::BSplineTransform::GetTransformDomainMeshSize ( ) const

◆ GetTransformDomainOrigin()

std::vector<double> itk::simple::BSplineTransform::GetTransformDomainOrigin ( ) const

◆ GetTransformDomainPhysicalDimensions()

std::vector<double> itk::simple::BSplineTransform::GetTransformDomainPhysicalDimensions ( ) const

◆ InternalInitialization() [1/2]

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

◆ InternalInitialization() [2/2]

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

◆ operator=()

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

◆ SetPimpleTransform()

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

Reimplemented from itk::simple::Transform.

◆ SetTransformDomainDirection()

Self& itk::simple::BSplineTransform::SetTransformDomainDirection ( const std::vector< double > &  )

parameters fixed parameter

◆ SetTransformDomainMeshSize()

Self& itk::simple::BSplineTransform::SetTransformDomainMeshSize ( const std::vector< unsigned int > &  )

◆ SetTransformDomainOrigin()

Self& itk::simple::BSplineTransform::SetTransformDomainOrigin ( const std::vector< double > &  )

◆ SetTransformDomainPhysicalDimensions()

Self& itk::simple::BSplineTransform::SetTransformDomainPhysicalDimensions ( const std::vector< double > &  )

Member Data Documentation

◆ m_pfGetCoefficientImages

std::function<std::vector<Image>)> itk::simple::BSplineTransform::m_pfGetCoefficientImages
private

Definition at line 129 of file sitkBSplineTransform.h.

◆ m_pfGetOrder

std::function< unsigned int()> itk::simple::BSplineTransform::m_pfGetOrder
private

Definition at line 130 of file sitkBSplineTransform.h.

◆ m_pfGetTransformDomainDirection

std::function<std::vector<double>)> itk::simple::BSplineTransform::m_pfGetTransformDomainDirection
private

Definition at line 120 of file sitkBSplineTransform.h.

◆ m_pfGetTransformDomainMeshSize

std::function<std::vector<unsigned int>)> itk::simple::BSplineTransform::m_pfGetTransformDomainMeshSize
private

Definition at line 122 of file sitkBSplineTransform.h.

◆ m_pfGetTransformDomainOrigin

std::function<std::vector<double>)> itk::simple::BSplineTransform::m_pfGetTransformDomainOrigin
private

Definition at line 124 of file sitkBSplineTransform.h.

◆ m_pfGetTransformDomainPhysicalDimensions

std::function<std::vector<double>)> itk::simple::BSplineTransform::m_pfGetTransformDomainPhysicalDimensions
private

Definition at line 126 of file sitkBSplineTransform.h.

◆ m_pfSetCoefficientImages

std::function<void (const std::vector<Image> &)> itk::simple::BSplineTransform::m_pfSetCoefficientImages
private

Definition at line 132 of file sitkBSplineTransform.h.

◆ m_pfSetTransformDomainDirection

std::function<void (const std::vector<double> &)> itk::simple::BSplineTransform::m_pfSetTransformDomainDirection
private

Definition at line 121 of file sitkBSplineTransform.h.

◆ m_pfSetTransformDomainMeshSize

std::function<void (const std::vector<unsigned int>&)> itk::simple::BSplineTransform::m_pfSetTransformDomainMeshSize
private

Definition at line 123 of file sitkBSplineTransform.h.

◆ m_pfSetTransformDomainOrigin

std::function<void (const std::vector<double>&)> itk::simple::BSplineTransform::m_pfSetTransformDomainOrigin
private

Definition at line 125 of file sitkBSplineTransform.h.

◆ m_pfSetTransformDomainPhysicalDimensions

std::function<void (const std::vector<double> &)> itk::simple::BSplineTransform::m_pfSetTransformDomainPhysicalDimensions
private

Definition at line 127 of file sitkBSplineTransform.h.


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