go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder > Class Template Reference

#include <itkMultiBSplineDeformableTransformWithNormal.h>

Detailed Description

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

This transform is a composition of B-spline transformations, allowing sliding motion between different labels.

Detailed explanation ...

Author
Vivien Delmon

Definition at line 42 of file itkMultiBSplineDeformableTransformWithNormal.h.

Inheritance diagram for itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >:

Public Types

using BaseType = Vector<VectorType, Self::SpaceDimension>
using ConstPointer = SmartPointer<const Self>
using ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension>
using DirectionType = typename ImageType::DirectionType
using GridOffsetType = IndexType
using ImageBasePointer = typename ImageBaseType::Pointer
using ImageBaseType = Image<BaseType, Self::SpaceDimension>
using ImageLabelInterpolator = itk::NearestNeighborInterpolateImageFunction<ImageLabelType, TScalarType>
using ImageLabelInterpolatorPointer = typename ImageLabelInterpolator::Pointer
using ImageLabelPointer = typename ImageLabelType::Pointer
using ImageLabelType = Image<unsigned char, Self::SpaceDimension>
using ImagePointer = typename ImageType::Pointer
using ImageType = Image<PixelType, Self::SpaceDimension>
using ImageVectorPointer = typename ImageVectorType::Pointer
using ImageVectorType = Image<VectorType, Self::SpaceDimension>
using IndexType = typename RegionType::IndexType
using InternalMatrixType
using JacobianOfSpatialHessianType
using JacobianOfSpatialJacobianType
using NonZeroJacobianIndicesType
using OriginType = typename ImageType::PointType
using ParameterIndexArrayType = Array<unsigned long>
using Pointer = SmartPointer<Self>
using RegionType = ImageRegion<Self::SpaceDimension>
using Self = MultiBSplineDeformableTransformWithNormal
using SizeType = typename RegionType::SizeType
using SpacingType = typename ImageBase<NDimensions>::SpacingType
using SpatialHessianType
using SpatialJacobianType
using Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions>
using VectorType = Vector<TScalarType, Self::SpaceDimension>
Public Types inherited from itk::AdvancedTransform< double, 3, 3 >
using ConstPointer
using InternalMatrixType
using InverseTransformBaseType
using JacobianOfSpatialHessianType
using JacobianOfSpatialJacobianType
using MovingImageGradientType
using MovingImageGradientValueType
using NonZeroJacobianIndicesType
using Pointer
using Self
using SpatialHessianType
using SpatialJacobianType
using Superclass
using TransformType
using TransformTypeConstPointer
using TransformTypePointer

Public Member Functions

const ParametersType & GetFixedParameters () const override
virtual DirectionType GetGridDirection () const
virtual OriginType GetGridOrigin () const
virtual RegionType GetGridRegion () const
virtual SpacingType GetGridSpacing () const
bool GetHasNonZeroSpatialHessian () const override
virtual bool GetHasNonZeroSpatialJacobian () const
void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &) const override
void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
void GetJacobianOfSpatialHessian (const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
virtual ImageLabelTypeGetLabels () const
virtual ImageBaseTypeGetLocalBases () const
virtual unsigned char GetNbLabels () const
virtual unsigned int GetNumberOfAffectedWeights () const
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override
NumberOfParametersType GetNumberOfParameters () const override
virtual NumberOfParametersType GetNumberOfParametersPerDimension () const
const ParametersType & GetParameters () const override
void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
virtual bool HasNonZeroJacobianOfSpatialHessian () const
virtual bool HasNonZeroJacobianOfSpatialJacobian () const
bool IsLinear () const override
 ITK_DISALLOW_COPY_AND_MOVE (MultiBSplineDeformableTransformWithNormal)
 itkOverrideGetNameOfClassMacro (MultiBSplineDeformableTransformWithNormal)
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder)
void SetFixedParameters (const ParametersType &parameters) override
virtual void SetGridDirection (const DirectionType &spacing)
virtual void SetGridOrigin (const OriginType &origin)
virtual void SetGridRegion (const RegionType &region)
virtual void SetGridSpacing (const SpacingType &spacing)
void SetIdentity ()
void SetLabels (ImageLabelType *labels)
void SetParameters (const ParametersType &parameters) override
void SetParametersByValue (const ParametersType &parameters) override
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
OutputPointType TransformPoint (const InputPointType &point) const override
OutputVectorType TransformVector (const InputVectorType &) const override
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
void UpdateLocalBases ()
Public Member Functions inherited from itk::AdvancedTransform< double, 3, 3 >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 itkOverrideGetNameOfClassMacro (AdvancedTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 MultiBSplineDeformableTransformWithNormal ()
void PrintSelf (std::ostream &os, Indent indent) const override
 ~MultiBSplineDeformableTransformWithNormal () override=default
Protected Member Functions inherited from itk::AdvancedTransform< double, 3, 3 >
 AdvancedTransform ()=default
 ~AdvancedTransform () override=default

Private Types

using TransformType = AdvancedBSplineDeformableTransform<TScalarType, Self::SpaceDimension, VSplineOrder>

Private Member Functions

void DispatchParameters (const ParametersType &parameters)
void PointToLabel (const InputPointType &p, int &l) const

Private Attributes

const ParametersType * m_InputParametersPointer {}
ParametersType m_InternalParametersBuffer {}
ImageLabelPointer m_Labels {}
ImageLabelInterpolatorPointer m_LabelsInterpolator {}
ImageVectorPointer m_LabelsNormals {}
int m_LastJacobian {}
ImageBasePointer m_LocalBases {}
unsigned char m_NbLabels {}
std::vector< ParametersType > m_Para {}
std::vector< typename TransformType::Pointerm_Trans {}

Static Private Attributes

static constexpr unsigned NumberOfWeights = TransformType::NumberOfWeights

Additional Inherited Members

Protected Attributes inherited from itk::AdvancedTransform< double, 3, 3 >
bool m_HasNonZeroJacobianOfSpatialHessian
bool m_HasNonZeroSpatialHessian

Member Typedef Documentation

◆ BaseType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::BaseType = Vector<VectorType, Self::SpaceDimension>

◆ ConstPointer

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

◆ ContinuousIndexType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ContinuousIndexType = ContinuousIndex<ScalarType, SpaceDimension>

This typedef should be equal to the typedef used in derived classes based on the weightsfunction.

Definition at line 355 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ DirectionType

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

◆ GridOffsetType

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

◆ ImageBasePointer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageBasePointer = typename ImageBaseType::Pointer

◆ ImageBaseType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageBaseType = Image<BaseType, Self::SpaceDimension>

◆ ImageLabelInterpolator

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelInterpolator = itk::NearestNeighborInterpolateImageFunction<ImageLabelType, TScalarType>

◆ ImageLabelInterpolatorPointer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelInterpolatorPointer = typename ImageLabelInterpolator::Pointer

◆ ImageLabelPointer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelPointer = typename ImageLabelType::Pointer

◆ ImageLabelType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageLabelType = Image<unsigned char, Self::SpaceDimension>

Typedef of the label image.

Definition at line 227 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ ImagePointer

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

◆ ImageType

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

◆ ImageVectorPointer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageVectorPointer = typename ImageVectorType::Pointer

◆ ImageVectorType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::ImageVectorType = Image<VectorType, Self::SpaceDimension>

◆ IndexType

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

◆ InternalMatrixType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InternalMatrixType

Definition at line 140 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialHessianType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialHessianType

Definition at line 139 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialJacobianType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialJacobianType

Definition at line 135 of file itkAdvancedTransform.h.

◆ NonZeroJacobianIndicesType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::NonZeroJacobianIndicesType

Types for the (Spatial)Jacobian/Hessian. Using an itk::FixedArray instead of an std::vector gives a performance gain for the SpatialHessianType.

Definition at line 133 of file itkAdvancedTransform.h.

◆ OriginType

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

◆ ParameterIndexArrayType

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

Parameter index array type.

Definition at line 256 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ Pointer

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

◆ RegionType

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

Get the array of coefficient images. Set the array of coefficient images.

This is an alternative API for setting the BSpline coefficients as an array of SpaceDimension images. The grid region spacing and origin is taken from the first image. It is assume 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. Typedefs for specifying the extend to the grid.

Definition at line 189 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ Self

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

Standard class typedefs.

Definition at line 49 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ SizeType

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

◆ SpacingType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SpacingType = typename ImageBase<NDimensions>::SpacingType

◆ SpatialHessianType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType

Definition at line 137 of file itkAdvancedTransform.h.

◆ SpatialJacobianType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialJacobianType

Definition at line 134 of file itkAdvancedTransform.h.

◆ Superclass

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions>

◆ TransformType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::TransformType = AdvancedBSplineDeformableTransform<TScalarType, Self::SpaceDimension, VSplineOrder>
private

◆ VectorType

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
using itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::VectorType = Vector<TScalarType, Self::SpaceDimension>

Typedef of the Normal Grid.

Definition at line 234 of file itkMultiBSplineDeformableTransformWithNormal.h.

Constructor & Destructor Documentation

◆ MultiBSplineDeformableTransformWithNormal()

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

◆ ~MultiBSplineDeformableTransformWithNormal()

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

Member Function Documentation

◆ DispatchParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::DispatchParameters ( const ParametersType & parameters)
private

◆ GetFixedParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const ParametersType & itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetFixedParameters ( ) const
override

Get the Transformation Fixed Parameters.

◆ GetGridDirection()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual DirectionType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetGridDirection ( ) const
virtual

◆ GetGridOrigin()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual OriginType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetGridOrigin ( ) const
virtual

◆ GetGridRegion()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual RegionType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetGridRegion ( ) const
virtual

◆ GetGridSpacing()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual SpacingType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetGridSpacing ( ) const
virtual

◆ GetHasNonZeroSpatialHessian()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
bool itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetHasNonZeroSpatialHessian ( ) const
inlineoverridevirtual

◆ GetHasNonZeroSpatialJacobian()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetHasNonZeroSpatialJacobian ( ) const
inlinevirtual

Whether the advanced transform has nonzero matrices.

Definition at line 327 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ GetJacobian()

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

Compute the Jacobian matrix of the transformation at one point. Compute the Jacobian of the transformation.

Implements itk::AdvancedTransform< double, 3, 3 >.

◆ GetJacobianOfSpatialHessian() [1/2]

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialHessian ( const InputPointType & ,
JacobianOfSpatialHessianType & ,
NonZeroJacobianIndicesType &  ) const
inlineoverridevirtual

◆ GetJacobianOfSpatialHessian() [2/2]

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialHessian ( const InputPointType & ,
SpatialHessianType & ,
JacobianOfSpatialHessianType & ,
NonZeroJacobianIndicesType &  ) const
override

◆ GetJacobianOfSpatialJacobian() [1/2]

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetJacobianOfSpatialJacobian ( const InputPointType & ,
SpatialJacobianType & ,
JacobianOfSpatialJacobianType & ,
NonZeroJacobianIndicesType &  ) const
override

◆ GetJacobianOfSpatialJacobian() [2/2]

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

◆ GetLabels()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual ImageLabelType * itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetLabels ( ) const
virtual

◆ GetLocalBases()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual ImageBaseType * itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetLocalBases ( ) const
virtual

◆ GetNbLabels()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual unsigned char itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetNbLabels ( ) const
virtual

◆ GetNumberOfAffectedWeights()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual unsigned int itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetNumberOfAffectedWeights ( ) const
inlinevirtual

◆ GetNumberOfNonZeroJacobianIndices()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
NumberOfParametersType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetNumberOfNonZeroJacobianIndices ( ) const
inlineoverridevirtual

◆ GetNumberOfParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
NumberOfParametersType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParameters ( ) const
override

Return the number of parameters that completely define the Transform.

◆ GetNumberOfParametersPerDimension()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual NumberOfParametersType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetNumberOfParametersPerDimension ( ) const
virtual

Return the number of parameters per dimension

◆ GetParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const ParametersType & itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::GetParameters ( ) const
override

Get the Transformation Parameters.

◆ GetSpatialHessian()

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

Compute the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< double, 3, 3 >.

◆ GetSpatialJacobian()

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

Compute the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< double, 3, 3 >.

◆ HasNonZeroJacobianOfSpatialHessian()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::HasNonZeroJacobianOfSpatialHessian ( ) const
inlinevirtual

◆ HasNonZeroJacobianOfSpatialJacobian()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual bool itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::HasNonZeroJacobianOfSpatialJacobian ( ) const
inlinevirtual

◆ IsLinear()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
bool itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::IsLinear ( ) const
inlineoverride

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)

Definition at line 305 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkOverrideGetNameOfClassMacro()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::itkOverrideGetNameOfClassMacro ( MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder > )

Run-time type information (and related methods).

◆ itkStaticConstMacro() [1/2]

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

Dimension of the domain space.

◆ itkStaticConstMacro() [2/2]

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

The BSpline order.

◆ New()

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

New macro for creation of through the object factory.

◆ PointToLabel()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::PointToLabel ( const InputPointType & p,
int & l ) const
private

◆ PrintSelf()

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

◆ SetFixedParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetFixedParameters ( const ParametersType & parameters)
override

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

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

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

◆ SetGridDirection()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetGridDirection ( const DirectionType & spacing)
virtual

This method specifies the grid directions .

◆ SetGridOrigin()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetGridOrigin ( const OriginType & origin)
virtual

This method specifies the grid origin.

◆ SetGridRegion()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetGridRegion ( const RegionType & region)
virtual

This method specifies the region over which the grid resides.

◆ SetGridSpacing()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
virtual void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetGridSpacing ( const SpacingType & spacing)
virtual

This method specifies the grid spacing or resolution.

◆ SetIdentity()

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

This method can ONLY be invoked AFTER calling SetParameters(). This restriction is due to the fact that the AdvancedBSplineDeformableTransform 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().

◆ SetLabels()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetLabels ( ImageLabelType * labels)

This method specifies the label image.

◆ SetParameters()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetParameters ( const ParametersType & parameters)
override

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.

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 grid region, spacing and origin. NOTE: The grid region, spacing and origin must be set first.

◆ SetParametersByValue()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::SetParametersByValue ( const ParametersType & parameters)
override

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 grid region, spacing and origin. NOTE: The grid region, spacing and origin must be set first.

◆ TransformCovariantVector()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
OutputCovariantVectorType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::TransformCovariantVector ( const InputCovariantVectorType & ) const
inlineoverride

Method to transform a CovariantVector - not applicable for this type of transform.

Definition at line 284 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ TransformPoint()

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

Transform points by a BSpline deformable transformation.

◆ TransformVector() [1/2]

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
OutputVectorType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::TransformVector ( const InputVectorType & ) const
inlineoverride

Method to transform a vector - not applicable for this type of transform.

Definition at line 262 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ TransformVector() [2/2]

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
OutputVnlVectorType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::TransformVector ( const InputVnlVectorType & ) const
inlineoverride

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

Definition at line 273 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ UpdateLocalBases()

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
void itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::UpdateLocalBases ( )

Update Local Bases : call to it should become automatic and the function should become private

Member Data Documentation

◆ m_InputParametersPointer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
const ParametersType* itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_InputParametersPointer {}
private

Wrap flat array into images of coefficients. Convert an input point to a continuous index inside the BSpline grid. Check if a continuous index is inside the valid region. The bulk transform. Array of images representing the B-spline coefficients in each dimension. Variables defining the coefficient grid extend. Variables defining the interpolation support region. Odd or even order BSpline. Keep a pointer to the input parameters.

Definition at line 460 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ m_InternalParametersBuffer

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ParametersType itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_InternalParametersBuffer {}
private

Keep track of last support region used in computing the Jacobian for fast resetting of Jacobian to zero. Array holding images wrapped from the flat parameters. Internal parameters buffer.

Definition at line 471 of file itkMultiBSplineDeformableTransformWithNormal.h.

◆ m_Labels

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ImageLabelPointer itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_Labels {}
private

◆ m_LabelsInterpolator

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ImageLabelInterpolatorPointer itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_LabelsInterpolator {}
private

◆ m_LabelsNormals

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ImageVectorPointer itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_LabelsNormals {}
private

◆ m_LastJacobian

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
int itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_LastJacobian {}
mutableprivate

◆ m_LocalBases

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
ImageBasePointer itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_LocalBases {}
private

◆ m_NbLabels

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned char itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_NbLabels {}
private

◆ m_Para

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector<ParametersType> itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_Para {}
private

◆ m_Trans

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
std::vector<typename TransformType::Pointer> itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::m_Trans {}
private

◆ NumberOfWeights

template<typename TScalarType = double, unsigned int NDimensions = 3, unsigned int VSplineOrder = 3>
unsigned itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >::NumberOfWeights = TransformType::NumberOfWeights
staticconstexprprivate

The number of weights.

Definition at line 489 of file itkMultiBSplineDeformableTransformWithNormal.h.



Generated on 26-02-2026 for elastix by doxygen 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) elastix logo