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

#include <itkBSplineTransform.h>

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

List of all members.

Public Types

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::InputPointType InputPointType
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::OutputPointType OutputPointType
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 BSplineTransform Self
typedef Superclass::SizeType SizeType
typedef Superclass::SpacingType SpacingType
typedef BSplineBaseTransform
< TScalarType, NDimensions,
VSplineOrder > 
Superclass
typedef
Superclass::WeightsFunctionType 
WeightsFunctionType
typedef Superclass::WeightsType WeightsType
- Public Types inherited from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >
typedef Superclass::DerivativeType DerivativeType
- Public Types inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
typedef DiffusionTensor3D
< TScalarType > 
InputDiffusionTensor3DType
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalarType,
NInputDimensions > 
InputSymmetricSecondRankTensorType
typedef VariableLengthVector
< TScalarType > 
InputVectorPixelType
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
typedef Transform< TScalarType,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef DiffusionTensor3D
< TScalarType > 
OutputDiffusionTensor3DType
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalarType,
NOutputDimensions > 
OutputSymmetricSecondRankTensorType
typedef VariableLengthVector
< TScalarType > 
OutputVectorPixelType
- Public Types inherited from itk::TransformBase
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual NumberOfParametersType GetNumberOfParameters () const
NumberOfParametersType GetNumberOfParametersPerDimension () const
virtual DirectionType GetTransformDomainDirection () const
virtual MeshSizeType GetTransformDomainMeshSize () const
virtual OriginType GetTransformDomainOrigin () const
virtual PhysicalDimensionsType GetTransformDomainPhysicalDimensions () const
virtual bool HasLocalSupport () const
virtual void SetCoefficientImages (const CoefficientImageArray &images)
virtual void SetTransformDomainDirection (const DirectionType &)
virtual void SetTransformDomainMeshSize (const MeshSizeType &)
virtual void SetTransformDomainOrigin (const OriginType &)
virtual void SetTransformDomainPhysicalDimensions (const PhysicalDimensionsType &)
virtual void SetFixedParameters (const ParametersType &parameters)
virtual void TransformPoint (const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const
- Public Member Functions inherited from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >
void ComputeJacobianFromBSplineWeightsWithRespectToPosition (const InputPointType &, WeightsType &, ParameterIndexArrayType &) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
const CoefficientImageArray GetCoefficientImages () const
virtual const ParametersTypeGetFixedParameters () const
unsigned int GetNumberOfAffectedWeights () const
unsigned long GetNumberOfWeights () const
virtual const ParametersTypeGetParameters () const
virtual bool IsLinear () const
 itkCloneMacro (Self)
void SetIdentity ()
void SetParameters (const ParametersType &parameters)
void SetParametersByValue (const ParametersType &parameters)
OutputPointType TransformPoint (const InputPointType &point) const
virtual void UpdateTransformParameters (const DerivativeType &update, TScalarType factor=1.0)
virtual void SetFixedParameters (const ParametersType &parameters)=0
virtual OutputVectorType TransformVector (const InputVectorType &) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
- Public Member Functions inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
unsigned int GetInputSpaceDimension (void) const
bool GetInverse (Self *) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual NumberOfParametersType GetNumberOfLocalParameters (void) const
unsigned int GetOutputSpaceDimension (void) const
virtual std::string GetTransformTypeAsString () const
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor, const InputPointType &point) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
virtual void UpdateTransformParameters (const DerivativeType &update, TScalarType factor=1.0)
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int SpaceDimension = NDimensions
static const unsigned int SplineOrder = VSplineOrder
- Static Public Attributes inherited from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >
- Static Public Attributes inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
static const unsigned int InputSpaceDimension
static const unsigned int OutputSpaceDimension

Protected Member Functions

 BSplineTransform ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~BSplineTransform ()
- Protected Member Functions inherited from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >
 BSplineBaseTransform ()
virtual WeightsFunctionTypeGetWeightsFunction ()
void SetFixedParametersFromTransformDomainInformation () const
virtual void SetWeightsFunction (WeightsFunctionType *_arg)
void WrapAsImages ()
virtual ~BSplineBaseTransform ()
- Protected Member Functions inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
virtual LightObject::Pointer InternalClone () const
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType, const JacobianType) const
 Transform ()
 Transform (NumberOfParametersType NumberOfParameters)
virtual ~Transform ()
- Protected Member Functions inherited from itk::TransformBase
 TransformBase ()
virtual ~TransformBase ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Private Member Functions

 BSplineTransform (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

Private Attributes

DirectionType m_TransformDomainDirection
DirectionType m_TransformDomainDirectionInverse
MeshSizeType m_TransformDomainMeshSize
OriginType m_TransformDomainOrigin
PhysicalDimensionsType m_TransformDomainPhysicalDimensions

Additional Inherited Members

- Protected Attributes inherited from itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >
CoefficientImageArray m_CoefficientImages
const ParametersTypem_InputParametersPointer
ParametersType m_InternalParametersBuffer
WeightsFunctionType::Pointer m_WeightsFunction
- Protected Attributes inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
ParametersType m_FixedParameters
ParametersType m_Parameters

Detailed Description

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
class itk::BSplineTransform< 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 modelled 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 transform domain (origin, physical dimensions, direction) and B-spline mesh size where the mesh size is the number of polynomial patches comprising the finite domain of support. The relationship between the mesh size ( number of polynomical pieces) and the number of control points in any given dimension is

mesh size = number of control points - spline order

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.

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 BSplineTransform<double,2,3> TransformType;
 * TransformType::Pointer transform = TransformType::New();
 *
 * transform->SetTransformDomainOrigin( origin );
 * transform->SetTransformDomainPhysicalDimensions( physicalDimensions );
 * transform->SetTransformDomainDirection( direction );
 * transform->SetTransformDomainMeshSize( meshSize );
 *
 * // 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 fixed parameters of the transform are 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.

Definition at line 110 of file itkBSplineTransform.h.


Member Typedef Documentation

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

Standard covariant vector type for this class.

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

Definition at line 149 of file itkBSplineTransform.h.

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

Standard coordinate point type for this class.

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

Definition at line 157 of file itkBSplineTransform.h.

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

Standard vector type for this class.

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

Definition at line 145 of file itkBSplineTransform.h.

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

Standard vnl_vector type for this class.

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

Definition at line 153 of file itkBSplineTransform.h.

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

Standard Jacobian container.

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

Definition at line 139 of file itkBSplineTransform.h.

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

The number of parameters defininig this transform.

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

Definition at line 142 of file itkBSplineTransform.h.

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

Standard covariant vector type for this class.

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

Definition at line 150 of file itkBSplineTransform.h.

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

Standard coordinate point type for this class.

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

Definition at line 158 of file itkBSplineTransform.h.

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

Standard vector type for this class.

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

Definition at line 146 of file itkBSplineTransform.h.

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

Parameter index array type.

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

Definition at line 221 of file itkBSplineTransform.h.

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

Standard parameters container.

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

Definition at line 136 of file itkBSplineTransform.h.

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

Parameters as SpaceDimension number of images.

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

Definition at line 187 of file itkBSplineTransform.h.

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

Typedefs for specifying the extent of the grid.

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

Definition at line 206 of file itkBSplineTransform.h.

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

Standard scalar type for this class.

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

Definition at line 133 of file itkBSplineTransform.h.

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

Standard class typedefs.

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

Definition at line 115 of file itkBSplineTransform.h.

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

Interpolation weights function type.

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

Definition at line 215 of file itkBSplineTransform.h.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineTransform< 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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const char* itk::BSplineTransform< 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::BSplineTransform< 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::BSplineTransform< 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 DirectionType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::GetTransformDomainDirection ( ) const
virtual

Function to retrieve the transform domain direction.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual MeshSizeType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::GetTransformDomainMeshSize ( ) const
virtual

Function to retrieve the transform domain mesh size.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OriginType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::GetTransformDomainOrigin ( ) const
virtual

Function to retrieve the transform domain origin.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual PhysicalDimensionsType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::GetTransformDomainPhysicalDimensions ( ) const
virtual

Function to retrieve the transform domain physical dimensions.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::HasLocalSupport ( ) const
inlinevirtual

Indicates if this transform is a "global" transform e.g. an affine transform, or a local one, e.g. a deformation field.

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

Definition at line 273 of file itkBSplineTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::InsideValidRegion ( ContinuousIndexType ) const
privatevirtual

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::BSplineTransform< 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::BSplineTransform< 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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetCoefficientImageInformationFromFixedParameters ( )
privatevirtual

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::BSplineTransform< 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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParameters ( const ParametersType parameters)
virtual

This method sets the fixed parameters of the transform. For a BSpline deformation transform, the fixed parameters are the following: grid size, grid origin, grid spacing, and grid direction. However, all of these are set via the much more intuitive SetTransformDomainXXX() functions

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

With recent updates to this transform, however, all these parameters are set indirectly by setting the transform domain parameters unless the user sets them with SetFixedParameters().

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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridDirectionFromTransformDomainInformation ( ) const
privatevirtual

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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridOriginFromTransformDomainInformation ( ) const
privatevirtual

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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridSizeFromTransformDomainInformation ( ) const
privatevirtual

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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersGridSpacingFromTransformDomainInformation ( ) const
privatevirtual

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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetTransformDomainDirection ( 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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetTransformDomainMeshSize ( const MeshSizeType )
virtual

Function to specify the transform domain mesh size.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetTransformDomainOrigin ( 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::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::SetTransformDomainPhysicalDimensions ( const PhysicalDimensionsType )
virtual

Function to specify the transform domain physical dimensions.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineTransform< 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 >.


Member Data Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
DirectionType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::m_TransformDomainDirection
private

Definition at line 310 of file itkBSplineTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
DirectionType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::m_TransformDomainDirectionInverse
private

Definition at line 311 of file itkBSplineTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
MeshSizeType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::m_TransformDomainMeshSize
private

Definition at line 313 of file itkBSplineTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
OriginType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::m_TransformDomainOrigin
private

Definition at line 308 of file itkBSplineTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
PhysicalDimensionsType itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >::m_TransformDomainPhysicalDimensions
private

Definition at line 309 of file itkBSplineTransform.h.

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

Dimension of the domain space.

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

Definition at line 127 of file itkBSplineTransform.h.

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

The BSpline order.

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

Definition at line 130 of file itkBSplineTransform.h.


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