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

A base class with common elements of BSplineTransform and BSplineDeformableTransform. More...

#include <itkBSplineBaseTransform.h>

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

List of all members.

Public Types

typedef FixedArray
< ImagePointer, NDimensions > 
CoefficientImageArray
typedef SmartPointer< const SelfConstPointer
typedef
WeightsFunctionType::ContinuousIndexType 
ContinuousIndexType
typedef Superclass::DerivativeType DerivativeType
typedef ImageType::DirectionType DirectionType
typedef ImageType::Pointer ImagePointer
typedef Image
< ParametersValueType,
itkGetStaticConstMacro(SpaceDimension)> 
ImageType
typedef RegionType::IndexType IndexType
typedef vnl_vector_fixed
< TScalarType, SpaceDimension
InputVnlVectorType
typedef Superclass::JacobianType JacobianType
typedef SizeType MeshSizeType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef ImageType::PointType OriginType
typedef vnl_vector_fixed
< TScalarType, SpaceDimension
OutputVnlVectorType
typedef Array< unsigned long > ParameterIndexArrayType
typedef Superclass::ParametersType ParametersType
typedef ParametersType::ValueType ParametersValueType
typedef ImageType::SpacingType PhysicalDimensionsType
typedef ImageType::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef ImageRegion
< itkGetStaticConstMacro(SpaceDimension)> 
RegionType
typedef Superclass::ScalarType ScalarType
typedef BSplineBaseTransform Self
typedef RegionType::SizeType SizeType
typedef ImageType::SpacingType SpacingType
typedef Transform< TScalarType,
NDimensions, NDimensions > 
Superclass
typedef
BSplineInterpolationWeightFunction
< ScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SplineOrder)> 
WeightsFunctionType
typedef
WeightsFunctionType::WeightsType 
WeightsType
typedef Vector< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputVectorType
typedef Vector< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputVectorType
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputCovariantVectorType
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputCovariantVectorType
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputPointType
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputPointType

Public Member Functions

void ComputeJacobianFromBSplineWeightsWithRespectToPosition (const InputPointType &, WeightsType &, ParameterIndexArrayType &) const
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const =0
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
const CoefficientImageArray GetCoefficientImages () const
virtual const ParametersTypeGetFixedParameters () const
virtual const char * GetNameOfClass () const
unsigned int GetNumberOfAffectedWeights () const
virtual NumberOfParametersType GetNumberOfParameters () const =0
virtual NumberOfParametersType GetNumberOfParametersPerDimension () const =0
unsigned long GetNumberOfWeights () const
virtual const ParametersTypeGetParameters () const
virtual bool IsLinear () const
virtual void SetCoefficientImages (const CoefficientImageArray &images)=0
void SetIdentity ()
void SetParameters (const ParametersType &parameters)
void SetParametersByValue (const ParametersType &parameters)
OutputPointType TransformPoint (const InputPointType &point) const
virtual void TransformPoint (const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const =0
virtual void UpdateTransformParameters (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

Static Public Attributes

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

Protected Member Functions

 BSplineBaseTransform ()
virtual WeightsFunctionTypeGetWeightsFunction ()
virtual bool InsideValidRegion (ContinuousIndexType &) const =0
void PrintSelf (std::ostream &os, Indent indent) const
virtual void SetCoefficientImageInformationFromFixedParameters ()=0
void SetFixedParametersFromTransformDomainInformation () const
virtual void SetFixedParametersGridDirectionFromTransformDomainInformation () const =0
virtual void SetFixedParametersGridOriginFromTransformDomainInformation () const =0
virtual void SetFixedParametersGridSizeFromTransformDomainInformation () const =0
virtual void SetFixedParametersGridSpacingFromTransformDomainInformation () const =0
virtual void SetWeightsFunction (WeightsFunctionType *_arg)
void WrapAsImages ()
virtual ~BSplineBaseTransform ()

Protected Attributes

CoefficientImageArray m_CoefficientImages
const ParametersTypem_InputParametersPointer
ParametersType m_InternalParametersBuffer
WeightsFunctionType::Pointer m_WeightsFunction

Private Member Functions

CoefficientImageArray ArrayOfImagePointerGeneratorHelper () const
 BSplineBaseTransform (const Self &)
void operator= (const Self &)

Detailed Description

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

A base class with common elements of BSplineTransform and BSplineDeformableTransform.

Definition at line 35 of file itkBSplineBaseTransform.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef FixedArray<ImagePointer, NDimensions> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::CoefficientImageArray
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<const Self> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ConstPointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef WeightsFunctionType::ContinuousIndexType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::DerivativeType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::DirectionType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::DirectionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::Pointer itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ImagePointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Image<ParametersValueType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ImageType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef RegionType::IndexType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::IndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::InputCovariantVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Point<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::InputPointType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::InputVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef vnl_vector_fixed<TScalarType, SpaceDimension> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::InputVnlVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::JacobianType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::JacobianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SizeType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::MeshSizeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::NumberOfParametersType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::NumberOfParametersType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::PointType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::OriginType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Point<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::OutputPointType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::OutputVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef vnl_vector_fixed<TScalarType, SpaceDimension> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Array<unsigned long> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ParameterIndexArrayType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParametersType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ParametersType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ParametersType::ValueType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ParametersValueType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::SpacingType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::PhysicalDimensionsType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::PixelType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::PixelType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<Self> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::Pointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageRegion<itkGetStaticConstMacro( SpaceDimension )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::RegionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ScalarType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ScalarType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineBaseTransform itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::Self
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef RegionType::SizeType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SizeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef ImageType::SpacingType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SpacingType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Transform<TScalarType, NDimensions, NDimensions> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::Superclass
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineInterpolationWeightFunction<ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder )> itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef WeightsFunctionType::WeightsType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::WeightsType

Constructor & Destructor Documentation

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

Member Function Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
CoefficientImageArray itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ArrayOfImagePointerGeneratorHelper ( ) const [private]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ComputeJacobianFromBSplineWeightsWithRespectToPosition ( const InputPointType ,
WeightsType ,
ParameterIndexArrayType  
) const

Get Jacobian at a point. A very specialized function just for BSplines

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ComputeJacobianWithRespectToParameters ( const InputPointType ,
JacobianType  
) const [pure virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::ComputeJacobianWithRespectToPosition ( const InputPointType ,
JacobianType  
) const [inline, virtual]

Definition at line 280 of file itkBSplineBaseTransform.h.

References itkExceptionMacro.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const CoefficientImageArray itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetCoefficientImages ( ) const [inline]

Get the array of coefficient images.

Definition at line 185 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const ParametersType& itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetFixedParameters ( ) const [virtual]

Get the Transformation Fixed Parameters.

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

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const char* itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetNameOfClass ( ) const [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned int itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfAffectedWeights ( ) const
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual NumberOfParametersType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParameters ( ) const [pure virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual NumberOfParametersType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParametersPerDimension ( ) const [pure virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned long itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfWeights ( ) const [inline]

Get number of weights.

Definition at line 239 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const ParametersType& itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetParameters ( ) const [virtual]

Get the Transformation Parameters.

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

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual WeightsFunctionType* itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::GetWeightsFunction ( ) [protected, virtual]

Allow subclasses to access and manipulate the weights function.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::InsideValidRegion ( ContinuousIndexType ) const [protected, pure virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::IsLinear ( ) const [inline, virtual]

Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then

T( a*P + b*Q ) = a * T(P) + b * T(Q)

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

Definition at line 297 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::operator= ( const Self ) [private]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< 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::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetCoefficientImageInformationFromFixedParameters ( ) [protected, pure virtual]

Construct control point grid size from transform domain information

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetCoefficientImages ( const CoefficientImageArray images) [pure 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.

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParameters ( const ParametersType parameters) [pure 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.

Implements itk::Transform< TScalarType, NDimensions, NDimensions >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetFixedParametersFromTransformDomainInformation ( ) const [protected]

Construct control point grid from transform domain information

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

Construct control point grid direction from transform domain information

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

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

Construct control point grid origin from transform domain information

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

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

Construct control point grid size from transform domain information

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

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

Construct control point grid spacing from transform domain information

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetIdentity ( )

This method can ONLY be invoked AFTER calling SetParameters(). This restriction is due to the fact that the BSplineBaseTransform does not copy the array of parameters internally, instead it keeps a pointer to the user-provided array of parameters. This method is also in violation of the const-correctness of the parameters since the parameter array has been passed to the transform on a 'const' basis but the values get modified when the user invokes SetIdentity().

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

This method sets the parameters of the transform. For a BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.

The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of scalars (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.

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

This method wraps each grid as itk::Image's using the user specified fixed parameters. NOTE: The transform domain must be set first.

Implements itk::Transform< TScalarType, NDimensions, NDimensions >.

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

This method sets the parameters of the transform. For a BSpline deformation transform, the parameters are the BSpline coefficients on a sparse grid.

The parameters are N number of N-D grid of coefficients. Each N-D grid is represented as a flat array of doubles (in the same configuration as an itk::Image). The N arrays are then concatenated to form one parameter array.

This methods makes a copy of the parameters while for efficiency the SetParameters method does not.

This method wraps each grid as itk::Image's using the user specified fixed parameters. NOTE: The fixed parameters must be set first.

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

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::SetWeightsFunction ( WeightsFunctionType _arg) [protected, virtual]

Allow subclasses to access and manipulate the weights function.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OutputCovariantVectorType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::TransformCovariantVector ( const InputCovariantVectorType ) const [inline, virtual]

Method to transform a CovariantVector.

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

Definition at line 266 of file itkBSplineBaseTransform.h.

References itkExceptionMacro.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
OutputPointType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::TransformPoint ( const InputPointType point) const [virtual]

Transform points by a BSpline deformable transformation.

Implements itk::Transform< TScalarType, NDimensions, NDimensions >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::TransformPoint ( const InputPointType inputPoint,
OutputPointType outputPoint,
WeightsType weights,
ParameterIndexArrayType indices,
bool &  inside 
) const [pure 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.

Implemented in itk::BSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, and itk::BSplineTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OutputVectorType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::TransformVector ( const InputVectorType ) const [inline, virtual]

Method to transform a vector.

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

Definition at line 247 of file itkBSplineBaseTransform.h.

References itkExceptionMacro.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OutputVnlVectorType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::TransformVector ( const InputVnlVectorType ) const [inline, virtual]

Method to transform a vnl_vector - not applicable for this type of transform

Definition at line 256 of file itkBSplineBaseTransform.h.

References itkExceptionMacro.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::UpdateTransformParameters ( DerivativeType update,
TScalarType  factor = 1.0 
) [virtual]

Update the transform's parameters by the adding values in update to current parameter values. We assume update is of the same length as Parameters. Throw exception otherwise. factor is a scalar multiplier for each value in update. SetParameters is called at the end of this method, to allow transforms to perform any required operations on the update parameters, typically a converion to member variables for use in TransformPoint. Derived classes should override to provide specialized behavior.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::WrapAsImages ( ) [protected]

Wrap flat array into images of coefficients.


Member Data Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
CoefficientImageArray itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::m_CoefficientImages [protected]

Array of images representing the B-spline coefficients in each dimension wrapped from the flat parameters in m_InternalParametersBuffer

Definition at line 362 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const ParametersType* itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::m_InputParametersPointer [protected]

Keep a pointer to the input parameters.

Definition at line 365 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ParametersType itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::m_InternalParametersBuffer [protected]

Internal parameters buffer.

Definition at line 368 of file itkBSplineBaseTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
WeightsFunctionType::Pointer itk::BSplineBaseTransform< TScalarType, NDimensions, VSplineOrder >::m_WeightsFunction [protected]

Pointer to function used to compute Bspline interpolation weights.

Definition at line 372 of file itkBSplineBaseTransform.h.

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

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