go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder > Class Template Reference

Deformable transform using a B-spline representation. More...

#include <itkAdvancedBSplineDeformableTransform.h>

Inheritance diagram for itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >:
Inheritance graph
[legend]
Collaboration diagram for itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >:
Collaboration graph
[legend]

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
WeightsFunctionType::ContinuousIndexType 
ContinuousIndexType
typedef
BSplineInterpolationDerivativeWeightFunction
< ScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SplineOrder) > 
DerivativeWeightsFunctionType
typedef Superclass::DirectionType DirectionType
typedef Superclass::GridOffsetType GridOffsetType
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::InternalMatrixType 
InternalMatrixType
typedef
Superclass::JacobianOfSpatialHessianType 
JacobianOfSpatialHessianType
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
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::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef Superclass::RegionType RegionType
typedef Superclass::ScalarType ScalarType
typedef
AdvancedBSplineDeformableTransform 
Self
typedef Superclass::SizeType SizeType
typedef
BSplineInterpolationSecondOrderDerivativeWeightFunction
< ScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SplineOrder) > 
SODerivativeWeightsFunctionType
typedef Superclass::SpacingType SpacingType
typedef
Superclass::SpatialHessianType 
SpatialHessianType
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
typedef
AdvancedBSplineDeformableTransformBase
< TScalarType, NDimensions > 
Superclass
typedef
BSplineInterpolationWeightFunction2
< ScalarType,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SplineOrder) > 
WeightsFunctionType
typedef
WeightsFunctionType::WeightsType 
WeightsType

Public Member Functions

virtual const char * GetClassName () const
virtual const JacobianTypeGetJacobian (const InputPointType &point) const
virtual void GetJacobian (const InputPointType &ipp, WeightsType &weights, ParameterIndexArrayType &indices) const
virtual void GetJacobian (const InputPointType &ipp, JacobianType &j, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
unsigned int GetNumberOfAffectedWeights (void) const
virtual unsigned long GetNumberOfNonZeroJacobianIndices (void) const
unsigned long GetNumberOfWeights (void) const
virtual void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const
virtual void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder)
virtual void SetGridRegion (const RegionType &region)
OutputPointType TransformPoint (const InputPointType &point) const
virtual void TransformPoint (const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const

Static Public Member Functions

static Pointer New ()

Protected Types

typedef
Superclass::JacobianImageType 
JacobianImageType
typedef
Superclass::JacobianPixelType 
JacobianPixelType

Protected Member Functions

 AdvancedBSplineDeformableTransform ()
virtual void ComputeNonZeroJacobianIndices (NonZeroJacobianIndicesType &nonZeroJacobianIndices, const RegionType &supportRegion) const
virtual WeightsFunctionTypeGetWeightsFunction ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
virtual void SetWeightsFunction (WeightsFunctionType *_arg)
void WrapAsImages (void)
virtual ~AdvancedBSplineDeformableTransform ()

Protected Attributes

std::vector< typename
DerivativeWeightsFunctionType::Pointer
m_DerivativeWeightsFunctions
std::vector< std::vector
< typename
SODerivativeWeightsFunctionType::Pointer > > 
m_SODerivativeWeightsFunctions
WeightsFunctionType::Pointer m_WeightsFunction

Private Member Functions

 AdvancedBSplineDeformableTransform (const Self &)
void operator= (const Self &)

Detailed Description

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

Deformable transform using a B-spline 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 B-spline 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 AdvancedBSplineDeformableTransform<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 SetCoefficientImage() 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 127 of file itkAdvancedBSplineDeformableTransform.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<const Self> itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ConstPointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef WeightsFunctionType::ContinuousIndexType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineInterpolationDerivativeWeightFunction< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeWeightsFunctionType

Definition at line 205 of file itkAdvancedBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::DirectionType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DirectionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::GridOffsetType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GridOffsetType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ImagePointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImagePointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ImageType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ImageType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::IndexType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::IndexType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputCovariantVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputCovariantVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputPointType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputPointType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InputVnlVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InputVnlVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::InternalMatrixType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::InternalMatrixType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::JacobianImageType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianImageType [protected]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass ::JacobianOfSpatialHessianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianOfSpatialHessianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass ::JacobianOfSpatialJacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianOfSpatialJacobianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::JacobianPixelType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianPixelType [protected]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::JacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::JacobianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass ::NonZeroJacobianIndicesType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::NonZeroJacobianIndicesType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OriginType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OriginType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputCovariantVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputPointType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputPointType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::OutputVnlVectorType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParameterIndexArrayType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParameterIndexArrayType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ParametersType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ParametersType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::PixelType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::PixelType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef SmartPointer<Self> itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Pointer
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::RegionType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::RegionType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::ScalarType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ScalarType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef AdvancedBSplineDeformableTransform itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Self
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SizeType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SizeType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineInterpolationSecondOrderDerivativeWeightFunction< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SODerivativeWeightsFunctionType

Definition at line 209 of file itkAdvancedBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SpacingType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpacingType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SpatialHessianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpatialHessianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef Superclass::SpatialJacobianType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SpatialJacobianType
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::Superclass
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
typedef BSplineInterpolationWeightFunction2< ScalarType, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType

Interpolation weights function type.

Reimplemented in itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.

Definition at line 199 of file itkAdvancedBSplineDeformableTransform.h.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ComputeNonZeroJacobianIndices ( NonZeroJacobianIndicesType nonZeroJacobianIndices,
const RegionType supportRegion 
) const [protected, virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const char* itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetClassName ( ) const [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const JacobianType& itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobian ( const InputPointType point) const [virtual]

Compute the Jacobian matrix of the transformation at one point.

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

Reimplemented in itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobian ( const InputPointType ipp,
WeightsType weights,
ParameterIndexArrayType indices 
) const [virtual]

Compute the Jacobian of the transformation.

Reimplemented in itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobian ( const InputPointType ipp,
JacobianType j,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialHessian ( const InputPointType ipp,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const [virtual]

Compute the Jacobian of the spatial Hessian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialHessian ( const InputPointType ipp,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const [virtual]

Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialJacobian ( const InputPointType ipp,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const [virtual]

Compute both the spatial Jacobian and the Jacobian of the spatial Jacobian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialJacobian ( const InputPointType ipp,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const [virtual]

Compute the Jacobian of the spatial Jacobian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned int itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfAffectedWeights ( void  ) const [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual unsigned long itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfNonZeroJacobianIndices ( void  ) const [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned long itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfWeights ( void  ) const [inline]

Get number of weights.

Definition at line 229 of file itkAdvancedBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetSpatialHessian ( const InputPointType ipp,
SpatialHessianType sh 
) const [virtual]

Compute the spatial Hessian of the transformation.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetSpatialJacobian ( const InputPointType ipp,
SpatialJacobianType sj 
) const [virtual]

Compute the spatial Jacobian of the transformation.

Reimplemented in itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual WeightsFunctionType* itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetWeightsFunction ( ) [protected, virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro ( SplineOrder  ,
unsigned  int,
VSplineOrder   
)
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
NDimensions   
)
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
static Pointer itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::New ( ) [static]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::operator= ( const Self ) [private]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< 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::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridRegion ( const RegionType region) [virtual]
template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< 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 void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::TransformPoint ( const InputPointType inputPoint,
OutputPointType outputPoint,
WeightsType weights,
ParameterIndexArrayType indices,
bool inside 
) const [virtual]

Transform points by a B-spline 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.

Reimplemented in itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >.

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

Transform points by a B-spline deformable transformation.

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

Wrap flat array into images of coefficients.

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


Field Documentation

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector< typename DerivativeWeightsFunctionType::Pointer > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_DerivativeWeightsFunctions [protected]

Definition at line 321 of file itkAdvancedBSplineDeformableTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector< std::vector< typename SODerivativeWeightsFunctionType::Pointer > > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_SODerivativeWeightsFunctions [protected]

Definition at line 323 of file itkAdvancedBSplineDeformableTransform.h.

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

Pointer to function used to compute B-spline interpolation weights. For each direction we create a different weights function for thread- safety.

Definition at line 319 of file itkAdvancedBSplineDeformableTransform.h.



Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo