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 | Friends
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder > Class Template Reference

#include <itkAdvancedBSplineDeformableTransform.h>

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;
* auto transform = TransformType::New();
*
* transform->SetGridRegion( region );
* transform->SetGridSpacing( spacing );
* transform->SetGridOrigin( origin );
*
* // NB: the region must be set first before setting the parameters
*
* TransformType::ParametersType parameters(
*                                       transform->GetNumberOfParameters() );
*
* // Fill the parameters with values
*
* transform->SetParameters( parameters )
*
* outputPoint = transform->TransformPoint( inputPoint );
*
* 

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

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

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

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

Definition at line 132 of file itkAdvancedBSplineDeformableTransform.h.

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

Public Types

using ConstPointer = SmartPointer< const Self >
 
using ContinuousIndexType = typename WeightsFunctionType::ContinuousIndexType
 
using DerivativeWeightsFunctionPointer = typename DerivativeWeightsFunctionType::Pointer
 
using DerivativeWeightsFunctionType = BSplineInterpolationDerivativeWeightFunction< ScalarType, Self::SpaceDimension, VSplineOrder >
 
using DirectionType = typename ImageType::DirectionType
 
using GridOffsetType = IndexType
 
using ImagePointer = typename ImageType::Pointer
 
using ImageType = Image< PixelType, Self::SpaceDimension >
 
using IndexType = typename RegionType::IndexType
 
using OriginType = typename ImageType::PointType
 
using ParameterIndexArrayType = Array< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using RegionType = ImageRegion< Self::SpaceDimension >
 
using Self = AdvancedBSplineDeformableTransform
 
using SizeType = typename RegionType::SizeType
 
using SODerivativeWeightsFunctionPointer = typename SODerivativeWeightsFunctionType::Pointer
 
using SODerivativeWeightsFunctionType = BSplineInterpolationSecondOrderDerivativeWeightFunction< ScalarType, Self::SpaceDimension, VSplineOrder >
 
using SpacingType = typename ImageType::SpacingType
 
using Superclass = AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
 
using WeightsFunctionPointer = typename WeightsFunctionType::Pointer
 
using WeightsFunctionType = BSplineInterpolationWeightFunction2< ScalarType, Self::SpaceDimension, VSplineOrder >
 
using WeightsType = typename WeightsFunctionType::WeightsType
 
- Public Types inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
using ConstPointer = SmartPointer< const Self >
 
using ContinuousIndexType = ContinuousIndex< ScalarType, SpaceDimension >
 
using DirectionType = typename ImageType::DirectionType
 
using GridOffsetType = IndexType
 
using ImagePointer = typename ImageType::Pointer
 
using ImageType = Image< PixelType, Self::SpaceDimension >
 
using IndexType = typename RegionType::IndexType
 
using OriginType = typename ImageType::PointType
 
using ParameterIndexArrayType = Array< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using RegionType = ImageRegion< Self::SpaceDimension >
 
using Self = AdvancedBSplineDeformableTransformBase
 
using SizeType = typename RegionType::SizeType
 
using SpacingType = typename ImageType::SpacingType
 
using Superclass = AdvancedTransform< TScalarType, NDimensions, NDimensions >
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
using ConstPointer = SmartPointer< const Self >
 
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
 
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
 
using MovingImageGradientType = OutputCovariantVectorType
 
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
 
using NonZeroJacobianIndicesType = std::vector< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedTransform
 
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
 
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
 
using Superclass = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformType = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 

Public Member Functions

void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
virtual const char * GetClassName () const
 
void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nzji) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
unsigned int GetNumberOfAffectedWeights () const override
 
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override
 
unsigned long GetNumberOfWeights () const
 
void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
 
void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedBSplineDeformableTransform)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
 itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder)
 
void SetGridRegion (const RegionType &region) override
 
OutputPointType TransformPoint (const InputPointType &point) const override
 
- Public Member Functions inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
virtual const char * GetClassName () const
 
virtual const ImagePointerGetCoefficientImages () const
 
const FixedParametersType & GetFixedParameters () const override
 
virtual DirectionType GetGridDirection () const
 
virtual OriginType GetGridOrigin () const
 
virtual RegionType GetGridRegion () const
 
virtual SpacingType GetGridSpacing () const
 
virtual unsigned int GetNumberOfAffectedWeights () const =0
 
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override=0
 
NumberOfParametersType GetNumberOfParameters () const override
 
virtual NumberOfParametersType GetNumberOfParametersPerDimension () const
 
const ParametersType & GetParameters () const override
 
unsigned GetSplineOrder () const
 
TransformCategoryEnum GetTransformCategory () const override
 
virtual const RegionTypeGetValidRegion ()
 
bool IsLinear () const override
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedBSplineDeformableTransformBase)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
virtual void SetCoefficientImages (ImagePointer images[])
 
void SetFixedParameters (const FixedParametersType &parameters) override
 
virtual void SetGridDirection (const DirectionType &direction)
 
virtual void SetGridOrigin (const OriginType &origin)
 
virtual void SetGridRegion (const RegionType &region)=0
 
virtual void SetGridSpacing (const SpacingType &spacing)
 
void SetIdentity ()
 
void SetParameters (const ParametersType &parameters) override
 
void SetParametersByValue (const ParametersType &parameters) override
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
virtual void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const =0
 
virtual void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const =0
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
template<template< class, unsigned, unsigned > class TBSplineDeformableTransform>
static Pointer Create (const unsigned splineOrder)
 

Protected Types

using JacobianImageType = Image< JacobianPixelType, Self::SpaceDimension >
 
using JacobianPixelType = typename JacobianType::ValueType
 
- Protected Types inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
using JacobianImageType = Image< JacobianPixelType, Self::SpaceDimension >
 
using JacobianPixelType = typename JacobianType::ValueType
 

Protected Member Functions

 AdvancedBSplineDeformableTransform ()
 
void ComputeNonZeroJacobianIndices (NonZeroJacobianIndicesType &nonZeroJacobianIndices, const RegionType &supportRegion) const override
 
 itkGetModifiableObjectMacro (WeightsFunction, WeightsFunctionType)
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SetWeightsFunction (WeightsFunctionType *_arg)
 
void WrapAsImages ()
 
 ~AdvancedBSplineDeformableTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
 AdvancedBSplineDeformableTransformBase ()=delete
 
 AdvancedBSplineDeformableTransformBase (const unsigned splineOrder)
 
virtual void ComputeNonZeroJacobianIndices (NonZeroJacobianIndicesType &nonZeroJacobianIndices, const RegionType &supportRegion) const =0
 
virtual bool InsideValidRegion (const ContinuousIndexType &index) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
ContinuousIndexType TransformPointToContinuousGridIndex (const InputPointType &point) const
 
void UpdateGridOffsetTable ()
 
void UpdatePointIndexConversions ()
 
void WrapAsImages ()
 
 ~AdvancedBSplineDeformableTransformBase () override=default
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 

Protected Attributes

std::vector< DerivativeWeightsFunctionPointerm_DerivativeWeightsFunctions
 
std::vector< std::vector< SODerivativeWeightsFunctionPointer > > m_SODerivativeWeightsFunctions
 
WeightsFunctionPointer m_WeightsFunction
 
- Protected Attributes inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
ImagePointer m_CoefficientImages [NDimensions]
 
DirectionType m_GridDirection { DirectionType::GetIdentity() }
 
GridOffsetType m_GridOffsetTable {}
 
OriginType m_GridOrigin {}
 
RegionType m_GridRegion {}
 
SpacingType m_GridSpacing { 1.0 }
 
DirectionType m_IndexToPoint
 
const ParametersType * m_InputParametersPointer
 
ParametersType m_InternalParametersBuffer
 
JacobianImageType::Pointer m_JacobianImage [NDimensions]
 
IndexType m_LastJacobianIndex
 
unsigned long m_Offset
 
DirectionType m_PointToIndexMatrix
 
SpatialJacobianType m_PointToIndexMatrix2
 
FixedArray< ScalarType, NDimensions > m_PointToIndexMatrixDiagonal
 
FixedArray< ScalarType, NDimensions *NDimensions > m_PointToIndexMatrixDiagonalProducts
 
bool m_PointToIndexMatrixIsDiagonal
 
DirectionType m_PointToIndexMatrixTransposed
 
SpatialJacobianType m_PointToIndexMatrixTransposed2
 
SizeType m_SupportSize
 
RegionType m_ValidRegion
 
ContinuousIndexType m_ValidRegionBegin
 
ContinuousIndexType m_ValidRegionEnd
 
ImagePointer m_WrappedImage [NDimensions]
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian { true }
 
bool m_HasNonZeroSpatialHessian { true }
 

Friends

class MultiBSplineDeformableTransformWithNormal< ScalarType, Self::SpaceDimension, VSplineOrder >
 

Additional Inherited Members

- Static Public Attributes inherited from itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >
static constexpr unsigned int NumberOfFixedParameters = NDimensions * (NDimensions + 3)
 

Member Typedef Documentation

◆ ConstPointer

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ConstPointer = SmartPointer<const Self>

Definition at line 142 of file itkAdvancedBSplineDeformableTransform.h.

◆ ContinuousIndexType

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

Definition at line 208 of file itkAdvancedBSplineDeformableTransform.h.

◆ DerivativeWeightsFunctionPointer

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeWeightsFunctionPointer = typename DerivativeWeightsFunctionType::Pointer

Definition at line 211 of file itkAdvancedBSplineDeformableTransform.h.

◆ DerivativeWeightsFunctionType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::DerivativeWeightsFunctionType = BSplineInterpolationDerivativeWeightFunction<ScalarType, Self::SpaceDimension, VSplineOrder>

Definition at line 209 of file itkAdvancedBSplineDeformableTransform.h.

◆ DirectionType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::DirectionType = typename ImageType::DirectionType

Definition at line 229 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ GridOffsetType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::GridOffsetType = IndexType

Definition at line 231 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ ImagePointer

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ImagePointer = typename ImageType::Pointer

Definition at line 200 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ ImageType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ImageType = Image<PixelType, Self::SpaceDimension>

Definition at line 199 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ IndexType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::IndexType = typename RegionType::IndexType

Definition at line 226 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ JacobianImageType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::JacobianImageType = Image<JacobianPixelType, Self::SpaceDimension>
protected

Definition at line 399 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ JacobianPixelType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::JacobianPixelType = typename JacobianType::ValueType
protected

Jacobian as SpaceDimension number of images.

Definition at line 398 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ OriginType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::OriginType = typename ImageType::PointType

Definition at line 230 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ ParameterIndexArrayType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::ParameterIndexArrayType = Array<unsigned long>

Parameter index array type.

Definition at line 258 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ Pointer

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

Definition at line 141 of file itkAdvancedBSplineDeformableTransform.h.

◆ RegionType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::RegionType = ImageRegion<Self::SpaceDimension>

Typedefs for specifying the extend to the grid.

Definition at line 224 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ Self

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

Standard class typedefs.

Definition at line 139 of file itkAdvancedBSplineDeformableTransform.h.

◆ SizeType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::SizeType = typename RegionType::SizeType

Definition at line 227 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ SODerivativeWeightsFunctionPointer

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SODerivativeWeightsFunctionPointer = typename SODerivativeWeightsFunctionType::Pointer

Definition at line 214 of file itkAdvancedBSplineDeformableTransform.h.

◆ SODerivativeWeightsFunctionType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SODerivativeWeightsFunctionType = BSplineInterpolationSecondOrderDerivativeWeightFunction<ScalarType, Self::SpaceDimension, VSplineOrder>

Definition at line 212 of file itkAdvancedBSplineDeformableTransform.h.

◆ SpacingType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >::SpacingType = typename ImageType::SpacingType

Definition at line 228 of file itkAdvancedBSplineDeformableTransformBase.h.

◆ Superclass

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

Definition at line 140 of file itkAdvancedBSplineDeformableTransform.h.

◆ WeightsFunctionPointer

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionPointer = typename WeightsFunctionType::Pointer

Definition at line 206 of file itkAdvancedBSplineDeformableTransform.h.

◆ WeightsFunctionType

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::WeightsFunctionType = BSplineInterpolationWeightFunction2<ScalarType, Self::SpaceDimension, VSplineOrder>

Interpolation weights function type.

Definition at line 205 of file itkAdvancedBSplineDeformableTransform.h.

◆ WeightsType

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

Definition at line 207 of file itkAdvancedBSplineDeformableTransform.h.

Constructor & Destructor Documentation

◆ AdvancedBSplineDeformableTransform()

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

◆ ~AdvancedBSplineDeformableTransform()

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

Member Function Documentation

◆ ComputeNonZeroJacobianIndices()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::ComputeNonZeroJacobianIndices ( NonZeroJacobianIndicesType nonZeroJacobianIndices,
const RegionType supportRegion 
) const
overrideprotectedvirtual

◆ EvaluateJacobianWithImageGradientProduct()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::EvaluateJacobianWithImageGradientProduct ( const InputPointType &  inputPoint,
const MovingImageGradientType movingImageGradient,
DerivativeType &  imageJacobian,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the inner product of the Jacobian with the moving image gradient. The Jacobian is (partially) constructed inside this function, but not returned.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

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

◆ GetClassName()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual const char * itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetClassName ( ) const
virtual

◆ GetJacobian()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobian ( const InputPointType &  inputPoint,
JacobianType &  j,
NonZeroJacobianIndicesType nzji 
) const
overridevirtual

◆ GetJacobianOfSpatialHessian() [1/2]

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialHessian ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the Jacobian of the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

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

◆ GetJacobianOfSpatialHessian() [2/2]

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

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

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

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

◆ GetJacobianOfSpatialJacobian() [1/2]

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialJacobian ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the Jacobian of the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

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

◆ GetJacobianOfSpatialJacobian() [2/2]

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

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

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

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

◆ GetNumberOfAffectedWeights()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned int itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfAffectedWeights ( ) const
overridevirtual

◆ GetNumberOfNonZeroJacobianIndices()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
NumberOfParametersType itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfNonZeroJacobianIndices ( ) const
overridevirtual

◆ GetNumberOfWeights()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned long itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetNumberOfWeights ( ) const
inline

Get number of weights.

Definition at line 222 of file itkAdvancedBSplineDeformableTransform.h.

◆ GetSpatialHessian()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetSpatialHessian ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
overridevirtual

◆ GetSpatialJacobian()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::GetSpatialJacobian ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
overridevirtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkGetModifiableObjectMacro()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::itkGetModifiableObjectMacro ( WeightsFunction  ,
WeightsFunctionType   
)
protected

◆ itkStaticConstMacro() [1/2]

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

Dimension of the domain space.

◆ itkStaticConstMacro() [2/2]

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

The B-spline order.

◆ New()

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

New macro for creation of through the object factory.

◆ PrintSelf()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

Print contents of an AdvancedBSplineDeformableTransform.

◆ SetGridRegion()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetGridRegion ( const RegionType region)
overridevirtual

◆ SetWeightsFunction()

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::SetWeightsFunction ( WeightsFunctionType _arg)
protectedvirtual

Allow subclasses to access and manipulate the weights function.

◆ TransformPoint()

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

Transform points by a B-spline deformable transformation.

◆ WrapAsImages()

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

Wrap flat array into images of coefficients.

Friends And Related Function Documentation

◆ MultiBSplineDeformableTransformWithNormal< ScalarType, Self::SpaceDimension, VSplineOrder >

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
friend class MultiBSplineDeformableTransformWithNormal< ScalarType, Self::SpaceDimension, VSplineOrder >
friend

Definition at line 315 of file itkAdvancedBSplineDeformableTransform.h.

Field Documentation

◆ m_DerivativeWeightsFunctions

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector<DerivativeWeightsFunctionPointer> itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_DerivativeWeightsFunctions
protected

Definition at line 314 of file itkAdvancedBSplineDeformableTransform.h.

◆ m_SODerivativeWeightsFunctions

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector<std::vector<SODerivativeWeightsFunctionPointer> > itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >::m_SODerivativeWeightsFunctions
protected

Definition at line 315 of file itkAdvancedBSplineDeformableTransform.h.

◆ m_WeightsFunction

template<class TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
WeightsFunctionPointer 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 313 of file itkAdvancedBSplineDeformableTransform.h.



Generated on Wed 12 Apr 2023 for elastix by doxygen 1.9.6 elastix logo