go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > Class Template Referenceabstract

#include <itkAdvancedTransform.h>

Detailed Description

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
class itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >

Transform maps points, vectors and covariant vectors from an input space to an output space.

This abstract class define the generic interface for a geometrical transformation from one space to another. The class provides methods for mapping points, vectors and covariant vectors from the input space to the output space.

Given that transformation are not necessarily invertible, this basic class does not provide the methods for back transformation. Back transform methods are implemented in derived classes where appropriate.

Registration Framework Support
Typically a Transform class has several methods for setting its parameters. For use in the registration framework, the parameters must also be represented by an array of doubles to allow communication with generic optimizers. The Array of transformation parameters is set using the SetParameters() method.

Another requirement of the registration framework is the computation of the Jacobian of the transform T. In general, an ImageToImageMetric requires the knowledge of this Jacobian in order to compute the metric derivatives. The Jacobian is a matrix whose element are the partial derivatives of the transformation with respect to the array of parameters mu that defines the transform, evaluated at a point p: dT/dmu(p).

If penalty terms are included in the registration, the transforms also need to implement other derivatives of T. Often, penalty terms are functions of the spatial derivatives of T. Therefore, e.g. the SpatialJacobian dT/dx and the SpatialHessian d^2T/dx_idx_j require implementation. The GetValueAndDerivative() requires the d/dmu of those terms. Therefore, we additionally define GetJacobianOfSpatialJacobian() and GetJacobianOfSpatialHessian().

Definition at line 83 of file itkAdvancedTransform.h.

Inheritance diagram for itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >:

Public Types

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<uint64_t>
using Pointer = SmartPointer<Self>
using Self = AdvancedTransform
using SpatialHessianType
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 ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) 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)
 itkOverrideGetNameOfClassMacro (AdvancedTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)

Protected Member Functions

 AdvancedTransform ()=default
 ~AdvancedTransform () override=default

Protected Attributes

bool m_HasNonZeroJacobianOfSpatialHessian { true }
bool m_HasNonZeroSpatialHessian { true }

Member Typedef Documentation

◆ ConstPointer

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer = SmartPointer<const Self>

Definition at line 92 of file itkAdvancedTransform.h.

◆ InternalMatrixType

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

Definition at line 140 of file itkAdvancedTransform.h.

◆ InverseTransformBaseType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InverseTransformBaseType = typename Superclass::InverseTransformBaseType

Definition at line 121 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialHessianType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialHessianType = std::vector<SpatialHessianType>

Definition at line 139 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialJacobianType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialJacobianType = std::vector<SpatialJacobianType>

Definition at line 135 of file itkAdvancedTransform.h.

◆ MovingImageGradientType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::MovingImageGradientType = OutputCovariantVectorType

Typedef for the moving image gradient type. This type is defined by the B-spline interpolator as typedef CovariantVector< RealType, ImageDimension > As we cannot access this type we simply re-construct it to be identical.

Definition at line 147 of file itkAdvancedTransform.h.

◆ MovingImageGradientValueType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::MovingImageGradientValueType = typename MovingImageGradientType::ValueType

Definition at line 148 of file itkAdvancedTransform.h.

◆ NonZeroJacobianIndicesType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::NonZeroJacobianIndicesType = std::vector<uint64_t>

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.

◆ Pointer

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::Pointer = SmartPointer<Self>

Definition at line 91 of file itkAdvancedTransform.h.

◆ Self

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::Self = AdvancedTransform

Standard class typedefs.

Definition at line 89 of file itkAdvancedTransform.h.

◆ SpatialHessianType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType
Initial value:
FixedArray<Matrix<ScalarType, InputSpaceDimension, InputSpaceDimension>, OutputSpaceDimension>

Definition at line 137 of file itkAdvancedTransform.h.

◆ SpatialJacobianType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialJacobianType = Matrix<ScalarType, OutputSpaceDimension, InputSpaceDimension>

Definition at line 134 of file itkAdvancedTransform.h.

◆ Superclass

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::Superclass = Transform<TScalarType, NInputDimensions, NOutputDimensions>

Definition at line 90 of file itkAdvancedTransform.h.

◆ TransformType

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformType = Transform<TScalarType, NInputDimensions, NOutputDimensions>

Transform typedefs for the from Superclass.

Definition at line 125 of file itkAdvancedTransform.h.

◆ TransformTypeConstPointer

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformTypeConstPointer = typename TransformType::ConstPointer

Definition at line 127 of file itkAdvancedTransform.h.

◆ TransformTypePointer

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformTypePointer = typename TransformType::Pointer

Definition at line 126 of file itkAdvancedTransform.h.

Constructor & Destructor Documentation

◆ AdvancedTransform()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedTransform ( )
protecteddefault

◆ ~AdvancedTransform()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::~AdvancedTransform ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeJacobianWithRespectToParameters()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType & ,
JacobianType &  ) const
inlineoverride

Override some pure virtual ITK4 functions.

Definition at line 229 of file itkAdvancedTransform.h.

◆ EvaluateJacobianWithImageGradientProduct()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::EvaluateJacobianWithImageGradientProduct ( const InputPointType & inputPoint,
const MovingImageGradientType & movingImageGradient,
DerivativeType & imageJacobian,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
virtual

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

Reimplemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, and itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >.

◆ GetHasNonZeroJacobianOfSpatialHessian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetHasNonZeroJacobianOfSpatialHessian ( ) const
virtual

◆ GetHasNonZeroSpatialHessian()

◆ GetJacobian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType & inputPoint,
JacobianType & j,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
pure virtual

This returns a sparse version of the Jacobian of the transformation.

The Jacobian is expressed as a vector of partial derivatives of the transformation components with respect to the parameters $\mu$ that define the transformation $T$, evaluated at a point $p$.

\‍[ J=\left[ \begin{array}{cccc}
 \frac{\partial T_{1}}{\partial \mu_{1}}(p) &
 \frac{\partial T_{1}}{\partial \mu_{2}}(p) &
 \cdots &
 \frac{\partial T_{1}}{\partial \mu_{m}}(p) \\
 \frac{\partial T_{2}}{\partial \mu_{1}}(p) &
 \frac{\partial T_{2}}{\partial \mu_{2}}(p) &
 \cdots &
 \frac{\partial T_{2}}{\partial \mu_{m}}(p) \\
 \vdots & \vdots & \ddots & \vdots \\
 \frac{\partial T_{d}}{\partial \mu_{1}}(p) &
 \frac{\partial T_{d}}{\partial \mu_{2}}(p) &
 \cdots &
 \frac{\partial T_{d}}{\partial \mu_{m}}(p)
 \end{array}\right],
\‍]

with $m$ the number of parameters, i.e. the size of $\mu$, and $d$ the dimension of the image.

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedEuler3DTransform< TScalarType >, itk::AdvancedEuler3DTransform< float >, itk::AdvancedEuler3DTransform< TScalarType >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedRigid2DTransform< double >, itk::AdvancedRigid2DTransform< float >, itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< float >, itk::AdvancedSimilarity3DTransform< TScalarType >, itk::AdvancedSimilarity3DTransform< float >, itk::AdvancedVersorRigid3DTransform< TScalarType >, itk::AdvancedVersorRigid3DTransform< double >, itk::AdvancedVersorRigid3DTransform< float >, itk::AdvancedVersorRigid3DTransform< TScalarType >, itk::AdvancedVersorTransform< TScalarType >, itk::AdvancedVersorTransform< double >, itk::AdvancedVersorTransform< float >, itk::AdvancedVersorTransform< TScalarType >, itk::AffineDTI2DTransform< TScalarType >, itk::AffineDTI3DTransform< TScalarType >, itk::AffineLogTransform< TScalarType, Dimension >, itk::AffineLogTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AffineLogTransform< typename elx::TransformBase< TElastix >::CoordinateType, Self::ReducedSpaceDimension >, itk::AffineLogTransform< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetJacobianOfSpatialHessian() [1/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType & inputPoint,
JacobianOfSpatialHessianType & jsh,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
pure virtual

Compute the Jacobian of the spatial Hessian of the transformation.

The Jacobian of the spatial Hessian is the derivative of the spatial Hessian to the transformation parameters $\mu$, evaluated at a point $p$.

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetJacobianOfSpatialHessian() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType & inputPoint,
SpatialHessianType & sh,
JacobianOfSpatialHessianType & jsh,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
pure virtual

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

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetJacobianOfSpatialJacobian() [1/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType & inputPoint,
JacobianOfSpatialJacobianType & jsj,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
pure virtual

Compute the Jacobian of the spatial Jacobian of the transformation.

The Jacobian of the spatial Jacobian is the derivative of the spatial Jacobian to the transformation parameters $\mu$, evaluated at a point $p$.

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetJacobianOfSpatialJacobian() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType & inputPoint,
SpatialJacobianType & sj,
JacobianOfSpatialJacobianType & jsj,
NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
pure virtual

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

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetNumberOfNonZeroJacobianIndices()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual NumberOfParametersType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfNonZeroJacobianIndices ( ) const
virtual

Get the number of nonzero Jacobian indices. By default all.

Reimplemented in itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< CoordinateRepresentationType, Self::FixedImageDimension >, itk::AdvancedBSplineDeformableTransformBase< double, 3 >, itk::AdvancedBSplineDeformableTransformBase< double, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< float, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< ScalarType, FixedImageDimension - 1 >, itk::AdvancedBSplineDeformableTransformBase< ScalarType, FixedImageDimension >, itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, Self::ReducedSpaceDimension >, itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, and itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >.

◆ GetSpatialHessian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialHessian ( const InputPointType & inputPoint,
SpatialHessianType & sh ) const
pure virtual

Compute the spatial Hessian of the transformation.

The spatial Hessian is the vector of matrices of partial second order derivatives of the transformation components with respect to the spatial position $x$, evaluated at a point $p$.

\‍[ sH=\left[ \begin{array}{cc}
 \frac{\partial^2 T_{i}}{\partial x_{1} \partial x_{1}}(p) &
 \frac{\partial^2 T_{i}}{\partial x_{1} \partial x_{2}}(p) \\
 \frac{\partial^2 T_{i}}{\partial x_{1} \partial x_{2}}(p) &
 \frac{\partial^2 T_{i}}{\partial x_{2} \partial x_{2}}(p) \\
 \end{array}\right],
\‍]

with i the i-th component of the transformation.

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ GetSpatialJacobian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialJacobian ( const InputPointType & inputPoint,
SpatialJacobianType & sj ) const
pure virtual

Compute the spatial Jacobian of the transformation.

The spatial Jacobian is expressed as a vector of partial derivatives of the transformation components with respect to the spatial position $x$, evaluated at a point $p$.

\‍[ sJ=\left[ \begin{array}{cccc}
 \frac{\partial T_{1}}{\partial x_{1}}(p) &
 \frac{\partial T_{1}}{\partial x_{2}}(p) &
 \cdots &
 \frac{\partial T_{1}}{\partial x_{m}}(p) \\
 \frac{\partial T_{2}}{\partial x_{1}}(p) &
 \frac{\partial T_{2}}{\partial x_{2}}(p) &
 \cdots &
 \frac{\partial T_{2}}{\partial x_{m}}(p) \\
 \vdots & \vdots & \ddots & \vdots \\
 \frac{\partial T_{d}}{\partial x_{1}}(p) &
 \frac{\partial T_{d}}{\partial x_{2}}(p) &
 \cdots &
 \frac{\partial T_{d}}{\partial x_{m}}(p)
 \end{array}\right],
\‍]

with $m$ the number of parameters, i.e. the size of $\mu$, and $d$ the dimension of the image.

Implemented in elastix::AdvancedTransformAdapter< TScalarType, NDimensions >, elastix::AdvancedTransformAdapter< CoordinateType, Superclass2::FixedImageDimension >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 >, itk::AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< TScalarType, Self::SpaceDimension, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension >, itk::AdvancedCombinationTransform< elx::ElastixBase::CoordinateType, FixedImageDimension >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension >, itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension >, itk::AdvancedMatrixOffsetTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::DeformationFieldInterpolatingTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, float >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 1 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 2 >, itk::MultiBSplineDeformableTransformWithNormal< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::StackTransform< CoordinateType, NDimension, NDimension >, itk::StackTransform< elx::ElastixBase::CoordinateType, NDimension, NDimension >, itk::StackTransform< ScalarType, FixedImageDimension, MovingImageDimension >, itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension, elx::TransformBase< TElastix >::MovingImageDimension >.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ITK_DISALLOW_COPY_AND_MOVE ( AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > )

◆ itkOverrideGetNameOfClassMacro()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkOverrideGetNameOfClassMacro ( AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > )

New method for creating an object using a factory. Run-time type information (and related methods).

◆ itkStaticConstMacro() [1/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( InputSpaceDimension ,
unsigned int ,
NInputDimensions  )

Dimension of the domain space.

◆ itkStaticConstMacro() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension ,
unsigned int ,
NOutputDimensions  )

Member Data Documentation

◆ m_HasNonZeroJacobianOfSpatialHessian

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_HasNonZeroJacobianOfSpatialHessian { true }
protected

Definition at line 304 of file itkAdvancedTransform.h.

◆ m_HasNonZeroSpatialHessian

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_HasNonZeroSpatialHessian { true }
protected

Definition at line 303 of file itkAdvancedTransform.h.



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