go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > Class Template Referenceabstract

#include <itkAdvancedTransform.h>

Detailed Description

template<class 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 85 of file itkAdvancedTransform.h.

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

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::DerivativeType DerivativeType
 
typedef Superclass::FixedParametersType FixedParametersType
 
typedef Superclass::InputCovariantVectorType InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef Superclass::InputVnlVectorType InputVnlVectorType
 
typedef SpatialJacobianType::InternalMatrixType InternalMatrixType
 
typedef Superclass::InverseTransformBasePointer InverseTransformBasePointer
 
typedef Superclass::InverseTransformBaseType InverseTransformBaseType
 
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
 
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef OutputCovariantVectorType MovingImageGradientType
 
typedef MovingImageGradientType::ValueType MovingImageGradientValueType
 
typedef std::vector< unsigned long > NonZeroJacobianIndicesType
 
typedef Superclass::NumberOfParametersType NumberOfParametersType
 
typedef Superclass::OutputCovariantVectorType OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::OutputVectorType OutputVectorType
 
typedef Superclass::OutputVnlVectorType OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef Superclass::ParametersValueType ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef Superclass::ScalarType ScalarType
 
typedef AdvancedTransform Self
 
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
 
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
 
typedef Transform< TScalarType, NInputDimensions, NOutputDimensions > Superclass
 
typedef Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType
 
typedef TransformType::ConstPointer TransformTypeConstPointer
 
typedef TransformType::Pointer TransformTypePointer
 

Public Member Functions

void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &ipp, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &ipp, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices (void) const
 
virtual void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const =0
 
virtual void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const =0
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Protected Member Functions

 AdvancedTransform ()
 
 AdvancedTransform (NumberOfParametersType numberOfParameters)
 
 ~AdvancedTransform () override
 

Protected Attributes

bool m_HasNonZeroJacobianOfSpatialHessian
 
bool m_HasNonZeroSpatialHessian
 

Private Member Functions

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

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 96 of file itkAdvancedTransform.h.

◆ DerivativeType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::DerivativeType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::DerivativeType

Definition at line 114 of file itkAdvancedTransform.h.

◆ FixedParametersType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::FixedParametersType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::FixedParametersType

Definition at line 111 of file itkAdvancedTransform.h.

◆ InputCovariantVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputCovariantVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputCovariantVectorType

Definition at line 119 of file itkAdvancedTransform.h.

◆ InputPointType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputPointType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputPointType

Definition at line 124 of file itkAdvancedTransform.h.

◆ InputVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVectorType

Definition at line 116 of file itkAdvancedTransform.h.

◆ InputVnlVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVnlVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVnlVectorType

Definition at line 122 of file itkAdvancedTransform.h.

◆ InternalMatrixType

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

Definition at line 151 of file itkAdvancedTransform.h.

◆ InverseTransformBasePointer

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InverseTransformBasePointer itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::InverseTransformBasePointer

Definition at line 128 of file itkAdvancedTransform.h.

◆ InverseTransformBaseType

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

Definition at line 127 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialHessianType

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

Definition at line 150 of file itkAdvancedTransform.h.

◆ JacobianOfSpatialJacobianType

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

Definition at line 144 of file itkAdvancedTransform.h.

◆ JacobianType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianType

Definition at line 115 of file itkAdvancedTransform.h.

◆ MovingImageGradientType

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

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 158 of file itkAdvancedTransform.h.

◆ MovingImageGradientValueType

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

Definition at line 159 of file itkAdvancedTransform.h.

◆ NonZeroJacobianIndicesType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef std::vector< unsigned long > 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 141 of file itkAdvancedTransform.h.

◆ NumberOfParametersType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::NumberOfParametersType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::NumberOfParametersType

Definition at line 113 of file itkAdvancedTransform.h.

◆ OutputCovariantVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputCovariantVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputCovariantVectorType

Definition at line 121 of file itkAdvancedTransform.h.

◆ OutputPointType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputPointType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointType

Definition at line 125 of file itkAdvancedTransform.h.

◆ OutputVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorType

Definition at line 117 of file itkAdvancedTransform.h.

◆ OutputVnlVectorType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVnlVectorType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVnlVectorType

Definition at line 123 of file itkAdvancedTransform.h.

◆ ParametersType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ParametersType

Definition at line 110 of file itkAdvancedTransform.h.

◆ ParametersValueType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersValueType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ParametersValueType

Definition at line 112 of file itkAdvancedTransform.h.

◆ Pointer

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

Definition at line 95 of file itkAdvancedTransform.h.

◆ ScalarType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ScalarType itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::ScalarType

Typedefs from the Superclass.

Definition at line 109 of file itkAdvancedTransform.h.

◆ Self

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

Standard class typedefs.

Definition at line 91 of file itkAdvancedTransform.h.

◆ SpatialHessianType

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType

Definition at line 149 of file itkAdvancedTransform.h.

◆ SpatialJacobianType

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

Definition at line 143 of file itkAdvancedTransform.h.

◆ Superclass

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

Definition at line 94 of file itkAdvancedTransform.h.

◆ TransformType

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

Transform typedefs for the from Superclass.

Definition at line 133 of file itkAdvancedTransform.h.

◆ TransformTypeConstPointer

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

Definition at line 135 of file itkAdvancedTransform.h.

◆ TransformTypePointer

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

Definition at line 134 of file itkAdvancedTransform.h.

Constructor & Destructor Documentation

◆ AdvancedTransform() [1/3]

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

◆ AdvancedTransform() [2/3]

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedTransform ( NumberOfParametersType  numberOfParameters)
protected

◆ ~AdvancedTransform()

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

Definition at line 310 of file itkAdvancedTransform.h.

◆ AdvancedTransform() [3/3]

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedTransform ( const Self )
private

Member Function Documentation

◆ ComputeJacobianWithRespectToParameters()

template<class 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 239 of file itkAdvancedTransform.h.

◆ EvaluateJacobianWithImageGradientProduct()

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::EvaluateJacobianWithImageGradientProduct ( const InputPointType ipp,
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::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >, and itk::AdvancedCombinationTransform< float, 3 >.

◆ GetClassName()

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const char * itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetClassName ( ) const
virtual

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

Reimplemented in itk::GPUAdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder, TParentTransform >, itk::GPUAdvancedCombinationTransform< TScalarType, NDimensions, TParentTransform >, itk::GPUAdvancedEuler2DTransform< TScalarType, TParentTransform >, itk::GPUAdvancedEuler3DTransform< TScalarType, TParentTransform >, itk::GPUAdvancedMatrixOffsetTransformBase< TScalarType, NDimensions, TParentTransform >, itk::GPUAdvancedSimilarity2DTransform< TScalarType, TParentTransform >, itk::GPUAdvancedSimilarity3DTransform< TScalarType, TParentTransform >, itk::GPUAdvancedTranslationTransform< TScalarType, NDimensions, TParentTransform >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedBSplineDeformableTransformBase< TScalarType, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< double, 3 >, itk::AdvancedBSplineDeformableTransformBase< double, NDimensions >, itk::AdvancedBSplineDeformableTransformBase< float, NDimensions >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::AdvancedEuler3DTransform< TScalarType >, itk::AdvancedEuler3DTransform< float >, itk::AdvancedIdentityTransform< TScalarType, NDimensions >, itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedRigid2DTransform< double >, itk::AdvancedRigid2DTransform< float >, itk::AdvancedRigid3DTransform< TScalarType >, itk::AdvancedRigid3DTransform< double >, itk::AdvancedRigid3DTransform< float >, itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< float >, itk::AdvancedSimilarity3DTransform< TScalarType >, itk::AdvancedSimilarity3DTransform< float >, itk::AdvancedTranslationTransform< TScalarType, NDimensions >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedVersorRigid3DTransform< TScalarType >, itk::AdvancedVersorRigid3DTransform< double >, itk::AdvancedVersorRigid3DTransform< float >, itk::AdvancedVersorTransform< TScalarType >, itk::AdvancedVersorTransform< double >, itk::AdvancedVersorTransform< float >, itk::CyclicBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, elastix::AdvancedAffineTransformElastix< TElastix >, elastix::AdvancedBSplineTransform< TElastix >, elastix::AffineDTITransformElastix< TElastix >, itk::AffineDTI2DTransform< TScalarType >, itk::AffineDTI3DTransform< TScalarType >, elastix::AffineLogStackTransform< TElastix >, elastix::AffineLogTransformElastix< TElastix >, itk::AffineLogTransform< TScalarType, Dimension >, elastix::BSplineTransformWithDiffusion< TElastix >, itk::DeformationFieldRegulizer< itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > >, itk::DeformationVectorFieldTransform< TScalarType, NDimensions >, elastix::BSplineStackTransform< TElastix >, elastix::DeformationFieldTransform< TElastix >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, elastix::EulerStackTransform< TElastix >, elastix::EulerTransformElastix< TElastix >, elastix::MultiBSplineTransformWithNormal< TElastix >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, elastix::RecursiveBSplineTransform< TElastix >, elastix::SimilarityTransformElastix< TElastix >, elastix::SplineKernelTransform< TElastix >, itk::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::ThinPlateR2LogRSplineKernelTransform2< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform2< TScalarType, NDimensions >, elastix::TranslationStackTransform< TElastix >, itk::AdvancedTranslationTransform< TScalarType, NDimensions >, itk::AdvancedTranslationTransform< float, 3 >, elastix::TranslationTransformElastix< TElastix >, elastix::WeightedCombinationTransformElastix< TElastix >, and itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetHasNonZeroJacobianOfSpatialHessian()

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

◆ GetHasNonZeroSpatialHessian()

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

◆ GetJacobian()

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType ipp,
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 itk::AdvancedEuler3DTransform< TScalarType >, itk::AdvancedEuler3DTransform< float >, itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedRigid2DTransform< double >, itk::AdvancedRigid2DTransform< float >, itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< float >, itk::AdvancedSimilarity3DTransform< TScalarType >, itk::AdvancedSimilarity3DTransform< float >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedVersorRigid3DTransform< TScalarType >, itk::AdvancedVersorRigid3DTransform< double >, itk::AdvancedVersorRigid3DTransform< float >, itk::AdvancedVersorTransform< TScalarType >, itk::AdvancedVersorTransform< double >, itk::AdvancedVersorTransform< float >, itk::AffineDTI2DTransform< TScalarType >, itk::AffineDTI3DTransform< TScalarType >, itk::AffineLogTransform< TScalarType, Dimension >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, itk::AdvancedTranslationTransform< float, 3 >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, and itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialHessian() [1/2]

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType ipp,
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 itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, and itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialHessian() [2/2]

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

◆ GetJacobianOfSpatialJacobian() [1/2]

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType ipp,
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 itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >, itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 2, 2 >, itk::AdvancedMatrixOffsetTransformBase< float, 3, 3 >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedTranslationTransform< float, 3 >, itk::AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >, itk::AdvancedBSplineDeformableTransform< double, 3, 3 >, itk::AdvancedBSplineDeformableTransform< double, 3, 0 >, itk::AdvancedBSplineDeformableTransform< float, 3, 3 >, itk::AdvancedCombinationTransform< TScalarType, NDimensions >, itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >, itk::AdvancedCombinationTransform< float, 3 >, itk::RecursiveBSplineTransform< TScalarType, NDimensions, VSplineOrder >, itk::StackTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::DeformationFieldInterpolatingTransform< TScalarType, NDimensions, TComponentType >, itk::MultiBSplineDeformableTransformWithNormal< TScalarType, NDimensions, VSplineOrder >, itk::KernelTransform2< TScalarType, NDimensions >, itk::KernelTransform2< double, 3 >, itk::KernelTransform2< TScalarType, 3 >, and itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialJacobian() [2/2]

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

◆ GetNumberOfNonZeroJacobianIndices()

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

◆ GetSpatialHessian()

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

◆ GetSpatialJacobian()

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

◆ itkStaticConstMacro() [1/2]

template<class 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<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned int  ,
NOutputDimensions   
)

◆ operator=()

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::operator= ( const Self )
private

Field Documentation

◆ m_HasNonZeroJacobianOfSpatialHessian

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_HasNonZeroJacobianOfSpatialHessian
protected

Definition at line 313 of file itkAdvancedTransform.h.

◆ m_HasNonZeroSpatialHessian

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_HasNonZeroSpatialHessian
protected

Definition at line 312 of file itkAdvancedTransform.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo