SimpleITK  1.2.4
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

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

Public Member Functions

 BSplineTransform (unsigned int dimensions, unsigned int order=3)
 
 BSplineTransform (std::vector< Image > &coefficientImages, unsigned int order=3)
 
 BSplineTransform (const BSplineTransform &)
 
 BSplineTransform (const Transform &)
 
std::vector< ImageGetCoefficientImages () const
 Get a vector of the coefficient images representing the BSpline. More...
 
std::string GetName () const
 
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 > &)
 
virtual ~BSplineTransform ()
 
- Public Member Functions inherited from itk::simple::Transform
SelfAddTransform (Transform t)
 
SelfFlattenTransform ()
 Remove nested composite transforms. More...
 
unsigned int GetDimension (void) const
 
Transform GetInverse () const
 Return a new inverse transform of the same type as this. More...
 
unsigned int GetNumberOfFixedParameters (void) const
 
unsigned int GetNumberOfParameters (void) const
 
virtual bool IsLinear () const
 
void MakeUnique (void)
 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 (void) const
 
 Transform (void)
 By default a 3-d identity transform is constructed. 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...
 
 Transform (Image &displacement, TransformEnum type=sitkDisplacementField)
 Use an image to construct a transform. 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 (void)
 
Transformoperator= (const Transform &)
 Copy constructor and assignment operator. More...
 
 Transform (const Transform &)
 Copy constructor and assignment operator. More...
 
itk::TransformBaseGetITKBase (void)
 
const itk::TransformBaseGetITKBase (void) const
 
void SetParameters (const std::vector< double > &parameters)
 
std::vector< double > GetParameters (void) const
 
void SetFixedParameters (const std::vector< double > &parameters)
 
std::vector< double > GetFixedParameters (void) const
 

Protected Member Functions

virtual void SetPimpleTransform (PimpleTransformBase *pimpleTransform)
 
- 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

nsstd::function< std::vector< Image >)> m_pfGetCoefficientImages
 
nsstd::function< unsigned int()> m_pfGetOrder
 
nsstd::function< std::vector< double >)> m_pfGetTransformDomainDirection
 
nsstd::function< std::vector< unsigned int >)> m_pfGetTransformDomainMeshSize
 
nsstd::function< std::vector< double >)> m_pfGetTransformDomainOrigin
 
nsstd::function< std::vector< double >)> m_pfGetTransformDomainPhysicalDimensions
 
nsstd::function< void(std::vector< Image > &)> m_pfSetCoefficientImages
 
nsstd::function< void(const std::vector< double > &)> m_pfSetTransformDomainDirection
 
nsstd::function< void(const std::vector< unsigned int > &)> m_pfSetTransformDomainMeshSize
 
nsstd::function< void(const std::vector< double > &)> m_pfSetTransformDomainOrigin
 
nsstd::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 35 of file sitkBSplineTransform.h.

Member Typedef Documentation

Definition at line 39 of file sitkBSplineTransform.h.

Definition at line 40 of file sitkBSplineTransform.h.

Constructor & Destructor Documentation

virtual itk::simple::BSplineTransform::~BSplineTransform ( )
virtual
itk::simple::BSplineTransform::BSplineTransform ( unsigned int  dimensions,
unsigned int  order = 3 
)
explicit
itk::simple::BSplineTransform::BSplineTransform ( 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.

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

Member Function Documentation

static PimpleTransformBase* itk::simple::BSplineTransform::CreateBSplinePimpleTransform ( unsigned int  dimension,
unsigned int  order 
)
staticprivate
template<unsigned int ND>
static PimpleTransformBase* itk::simple::BSplineTransform::CreateBSplinePimpleTransform ( unsigned int  order)
staticprivate
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.

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

Name of this class

Reimplemented from itk::simple::Transform.

Definition at line 64 of file sitkBSplineTransform.h.

unsigned int itk::simple::BSplineTransform::GetOrder ( ) const
std::vector<double> itk::simple::BSplineTransform::GetTransformDomainDirection ( ) const
std::vector<unsigned int> itk::simple::BSplineTransform::GetTransformDomainMeshSize ( ) const
std::vector<double> itk::simple::BSplineTransform::GetTransformDomainOrigin ( ) const
std::vector<double> itk::simple::BSplineTransform::GetTransformDomainPhysicalDimensions ( ) const
void itk::simple::BSplineTransform::InternalInitialization ( itk::TransformBase transform)
private
template<typename TransformType >
void itk::simple::BSplineTransform::InternalInitialization ( TransformType *  transform)
private
BSplineTransform& itk::simple::BSplineTransform::operator= ( const BSplineTransform )
virtual void itk::simple::BSplineTransform::SetPimpleTransform ( PimpleTransformBase *  pimpleTransform)
protectedvirtual

Reimplemented from itk::simple::Transform.

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

parameters fixed parameter

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

Member Data Documentation

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

Definition at line 133 of file sitkBSplineTransform.h.

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

Definition at line 134 of file sitkBSplineTransform.h.

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

Definition at line 124 of file sitkBSplineTransform.h.

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

Definition at line 126 of file sitkBSplineTransform.h.

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

Definition at line 128 of file sitkBSplineTransform.h.

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

Definition at line 130 of file sitkBSplineTransform.h.

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

Definition at line 136 of file sitkBSplineTransform.h.

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

Definition at line 125 of file sitkBSplineTransform.h.

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

Definition at line 127 of file sitkBSplineTransform.h.

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

Definition at line 129 of file sitkBSplineTransform.h.

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

Definition at line 131 of file sitkBSplineTransform.h.


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