ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder > Class Template Reference

Deformable transform using a BSpline representation. More...

#include <itkBSplineDeformableTransform.h>

Inheritance diagram for itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >:
Collaboration diagram for itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >:

List of all members.

Public Types

typedef
BulkTransformType::ConstPointer 
BulkTransformPointer
typedef Transform< ScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SpaceDimension)> 
BulkTransformType
typedef
Superclass::CoefficientImageArray 
CoefficientImageArray
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::ContinuousIndexType 
ContinuousIndexType
typedef Superclass::DirectionType DirectionType
typedef Superclass::ImagePointer ImagePointer
typedef Superclass::ImageType ImageType
typedef Superclass::IndexType IndexType
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MeshSizeType MeshSizeType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef Superclass::OriginType OriginType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef
Superclass::ParameterIndexArrayType 
ParameterIndexArrayType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef Superclass::SpacingType PhysicalDimensionsType
typedef Superclass::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef Superclass::RegionType RegionType
typedef Superclass::ScalarType ScalarType
typedef BSplineDeformableTransform Self
typedef Superclass::SizeType SizeType
typedef Superclass::SpacingType SpacingType
typedef BSplineBaseTransform
< TScalarType, NDimensions,
VSplineOrder > 
Superclass
typedef
Superclass::WeightsFunctionType 
WeightsFunctionType
typedef Superclass::WeightsType WeightsType
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputPointType
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputPointType

Public Member Functions

virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const
virtual DirectionType GetGridDirection () const
virtual OriginType GetGridOrigin () const
virtual RegionType GetGridRegion () const
virtual SpacingType GetGridSpacing () const
virtual const char * GetNameOfClass () const
virtual NumberOfParametersType GetNumberOfLocalParameters () const
virtual NumberOfParametersType GetNumberOfParameters () const
NumberOfParametersType GetNumberOfParametersPerDimension () const
virtual const RegionTypeGetValidRegion ()
virtual void SetCoefficientImages (const CoefficientImageArray &images)
virtual void SetGridDirection (const DirectionType &)
virtual void SetGridOrigin (const OriginType &)
virtual void SetGridRegion (const RegionType &)
virtual void SetGridSpacing (const SpacingType &)
virtual void SetFixedParameters (const ParametersType &parameters)
virtual void TransformPoint (const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const
virtual void SetBulkTransform (const BulkTransformType *_arg)
virtual const BulkTransformTypeGetBulkTransform ()

Static Public Attributes

static const unsigned int SpaceDimension = NDimensions
static const unsigned int SplineOrder = VSplineOrder

Protected Member Functions

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

Private Member Functions

 BSplineDeformableTransform (const Self &)
virtual bool InsideValidRegion (ContinuousIndexType &) const
void operator= (const Self &)
virtual void SetCoefficientImageInformationFromFixedParameters ()
virtual void SetFixedParametersGridDirectionFromTransformDomainInformation () const
virtual void SetFixedParametersGridOriginFromTransformDomainInformation () const
virtual void SetFixedParametersGridSizeFromTransformDomainInformation () const
virtual void SetFixedParametersGridSpacingFromTransformDomainInformation () const
void UpdateValidGridRegion ()

Private Attributes

BulkTransformPointer m_BulkTransform
const DirectionTypem_GridDirection
const OriginTypem_GridOrigin
const RegionTypem_GridRegion
const SpacingTypem_GridSpacing
unsigned long m_Offset
bool m_SplineOrderOdd
RegionType m_ValidRegion
IndexType m_ValidRegionFirst
IndexType m_ValidRegionLast
static Pointer New ()
virtual ::itk::LightObject::Pointer CreateAnother (void) const

Detailed Description

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
class itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >

Deformable transform using a BSpline representation.

This class encapsulates a deformable transform of points from one N-dimensional one space to another N-dimensional space. The deformation field is modeled using B-splines. A deformation is defined on a sparse regular grid of control points $ \vec{\lambda}_j $ and is varied by defining a deformation $ \vec{g}(\vec{\lambda}_j) $ of each control point. The deformation $ D(\vec{x}) $ at any point $ \vec{x} $ is obtained by using a B-spline interpolation kernel.

The deformation field grid is defined by a user specified GridRegion, GridSpacing and GridOrigin. Each grid/control point has associated with it N deformation coefficients $ \vec{\delta}_j $, representing the N directional components of the deformation. Deformation outside the grid plus support region for the BSpline interpolation is assumed to be zero.

Additionally, the user can specified an addition bulk transform $ B $ such that the transformed point is given by:

\[ \vec{y} = B(\vec{x}) + D(\vec{x}) \]

The parameters for this transform is N x N-D grid of spline coefficients. The user specifies the parameters as one flat array: each N-D grid is represented by an array in the same way an N-D image is represented in the buffer; the N arrays are then concatentated together on form a single array.

For efficiency, this transform does not make a copy of the parameters. It only keeps a pointer to the input parameters and assumes that the memory is managed by the caller.

The following illustrates the typical usage of this class:

 * typedef BSplineDeformableTransform<double,2,3> TransformType;
 * TransformType::Pointer transform = TransformType::New();
 *
 * transform->SetGridRegion( region );
 * transform->SetGridSpacing( spacing );
 * transform->SetGridOrigin( origin );
 *
 * // NB: the region must be set first before setting the parameters
 *
 * TransformType::ParametersType parameters(
 *                                       transform->GetNumberOfParameters() );
 *
 * // Fill the parameters with values
 *
 * transform->SetParameters( parameters )
 *
 * outputPoint = transform->TransformPoint( inputPoint );
 *
 * 

An alternative way to set the B-spline coefficients is via array of images. The grid region, spacing and origin information is taken directly from the first image. It is assumed that the subsequent images are the same buffered region. The following illustrates the API:

 *
 * TransformType::ImageConstPointer images[2];
 *
 * // Fill the images up with values
 *
 * transform->SetCoefficientImages( images );
 * outputPoint = transform->TransformPoint( inputPoint );
 *
 * 

Warning: use either the SetParameters() or SetCoefficientImages() API. Mixing the two modes may results in unexpected results.

The class is templated coordinate representation type (float or double), the space dimension and the spline order.

Wiki Examples:

Definition at line 109 of file itkBSplineDeformableTransform.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BulkTransformType::ConstPointer itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::BulkTransformPointer

Definition at line 294 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Transform<ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SpaceDimension)> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::BulkTransformType

Definition at line 290 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::CoefficientImageArray itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::CoefficientImageArray
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<const Self> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ConstPointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ContinuousIndexType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::DirectionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DirectionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ImagePointer itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImagePointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ImageType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImageType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::IndexType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::IndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputCovariantVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputCovariantVectorType

Standard covariant vector type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 161 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Point<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputPointType

Standard coordinate point type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 169 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVectorType

Standard vector type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 157 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputVnlVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVnlVectorType

Standard vnl_vector type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 165 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::JacobianType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianType

Standard Jacobian container.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 151 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::MeshSizeType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::MeshSizeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::NumberOfParametersType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::NumberOfParametersType

The number of parameters defininig this transform.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 154 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OriginType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OriginType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputCovariantVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputCovariantVectorType

Standard covariant vector type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 162 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Point<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputPointType

Standard coordinate point type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 170 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVectorType

Standard vector type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 158 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputVnlVectorType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParameterIndexArrayType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParameterIndexArrayType

Parameter index array type.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 240 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParametersType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParametersType

Standard parameters container.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 148 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParametersValueType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParametersValueType

Parameters as SpaceDimension number of images.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 194 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SpacingType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::PhysicalDimensionsType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::PixelType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::PixelType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<Self> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Pointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::RegionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::RegionType

Typedefs for specifying the extent of the grid.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 225 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ScalarType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ScalarType

Standard scalar type for this class.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 145 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineDeformableTransform itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Self

Standard class typedefs.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 114 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SizeType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SizeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SpacingType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpacingType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineBaseTransform<TScalarType,NDimensions,VSplineOrder> itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Superclass
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::WeightsFunctionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType

Interpolation weights function type.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 234 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::WeightsType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsType

Constructor & Destructor Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::BSplineDeformableTransform ( ) [protected]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::~BSplineDeformableTransform ( ) [protected, virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::BSplineDeformableTransform ( const Self ) [private]

Member Function Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ComputeJacobianWithRespectToParameters ( const InputPointType ,
JacobianType  
) const [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual ::itk::LightObject::Pointer itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::CreateAnother ( void  ) const [inline, virtual]

New macro for creation of through the object factory.

Reimplemented from itk::Object.

Definition at line 124 of file itkBSplineDeformableTransform.h.

References itk::SmartPointer< TObjectType >::GetPointer().

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const BulkTransformType* itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetBulkTransform ( ) [virtual]

This method specifies the bulk transform to be applied. The default is the identity transform.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual DirectionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetGridDirection ( ) const [virtual]

Function to retrieve the transform domain direction.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OriginType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetGridOrigin ( ) const [virtual]

Function to retrieve the transform domain origin.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual RegionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetGridRegion ( ) const [virtual]

Function to retrieve the transform domain mesh size.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual SpacingType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetGridSpacing ( ) const [virtual]

This method retrieve the grid spacing or resolution.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const char* itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual NumberOfParametersType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfLocalParameters ( void  ) const [inline, virtual]

Return the number of local parameters

Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.

Definition at line 306 of file itkBSplineDeformableTransform.h.

References itkExceptionMacro.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual NumberOfParametersType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParameters ( ) const [virtual]

Return the number of parameters that completely define the Transfom

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
NumberOfParametersType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParametersPerDimension ( ) const [virtual]

Return the number of parameters per dimension

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const RegionType& itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetValidRegion ( ) [virtual]

Return the region of the grid wholly within the support region

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InsideValidRegion ( ContinuousIndexType ) const [private, virtual]

Check if a continuous index is inside the valid region.

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
static Pointer itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::New ( ) [static]

New macro for creation of through the object factory.

Reimplemented from itk::Object.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetBulkTransform ( const BulkTransformType _arg) [virtual]

This method specifies the bulk transform to be applied. The default is the identity transform.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetCoefficientImageInformationFromFixedParameters ( ) [private, virtual]

Construct control point grid size from transform domain information

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetCoefficientImages ( const CoefficientImageArray images) [virtual]

Set the array of coefficient images.

This is an alternative API for setting the BSpline coefficients as an array of SpaceDimension images. The fixed parameters are taken from the first image. It is assumed that the buffered region of all the subsequent images are the same as the first image. Note that no error checking is done.

Warning: use either the SetParameters() or SetCoefficientImages() API. Mixing the two modes may results in unexpected results.

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParameters ( const ParametersType parameters) [virtual]

This method sets the fixed parameters of the transform. For a BSpline deformation transform, the parameters are the following: Grid Size, Grid Origin, and Grid Spacing

The fixed parameters are the three times the size of the templated dimensions. This function has the effect of make the following calls: transform->SetGridSpacing( spacing ); transform->SetGridOrigin( origin ); transform->SetGridDirection( direction ); transform->SetGridRegion( bsplineRegion );

This function was added to allow the transform to work with the itkTransformReader/Writer I/O filters.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridDirectionFromTransformDomainInformation ( ) const [private, virtual]

Construct control point grid direction from transform domain information

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridOriginFromTransformDomainInformation ( ) const [private, virtual]

Construct control point grid origin from transform domain information

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridSizeFromTransformDomainInformation ( ) const [private, virtual]

Construct control point grid size from transform domain information

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridSpacingFromTransformDomainInformation ( ) const [private, virtual]

Construct control point grid spacing from transform domain information

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridDirection ( const DirectionType ) [virtual]

Function to specify the transform domain direction.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridOrigin ( const OriginType ) [virtual]

Function to specify the transform domain origin.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridRegion ( const RegionType ) [virtual]

Function to specify the transform domain mesh size.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridSpacing ( const SpacingType ) [virtual]

This method specifies the grid spacing or resolution.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::TransformPoint ( const InputPointType inputPoint,
OutputPointType outputPoint,
WeightsType weights,
ParameterIndexArrayType indices,
bool &  inside 
) const [virtual]

Transform points by a BSpline deformable transformation. On return, weights contains the interpolation weights used to compute the deformation and indices of the x (zeroth) dimension coefficient parameters in the support region used to compute the deformation. Parameter indices for the i-th dimension can be obtained by adding ( i * this->GetNumberOfParametersPerDimension() ) to the indices array.

Implements itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::UpdateValidGridRegion ( ) [private]

Member Data Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
BulkTransformPointer itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_BulkTransform [private]

The bulk transform.

Definition at line 355 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const DirectionType& itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_GridDirection [private]

Definition at line 352 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const OriginType& itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_GridOrigin [private]

Definition at line 350 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const RegionType& itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_GridRegion [private]

The variables defining the coefficient grid domain for the InternalParametersBuffer are taken from the m_CoefficientImages[0] image, and must be kept in sync with them. by using references to that instance, this is more naturally enforced and does not introduce a speed penalty of dereferencing through the pointers (although it does enforce some internal class syncronization).

Definition at line 349 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const SpacingType& itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_GridSpacing [private]

Definition at line 351 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned long itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_Offset [private]

Variables defining the interpolation support region.

Definition at line 360 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
bool itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_SplineOrderOdd [private]

Definition at line 361 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
RegionType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_ValidRegion [private]

Definition at line 357 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
IndexType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_ValidRegionFirst [private]

Definition at line 363 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
IndexType itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_ValidRegionLast [private]

Definition at line 362 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const unsigned int itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpaceDimension = NDimensions [static]

Dimension of the domain space.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 139 of file itkBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const unsigned int itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SplineOrder = VSplineOrder [static]

The BSpline order.

Reimplemented from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 142 of file itkBSplineDeformableTransform.h.


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