template<typename
TScalarType , unsigned
int NDimensions = 3>
class itk::AdvancedCombinationTransform< TScalarType, NDimensions >
This class combines two transforms: an 'initial transform' with a 'current transform'.
The CombinationTransform class combines an initial transform with a current transform .
Two methods of combining the transforms are supported:
Addition:
Composition:
The TransformPoint() , the GetJacobian() and the GetInverse() methods depend on this setting.
If the transform is used in a registration framework, the initial transform is assumed constant, and the current transform is assumed to be the transform that is optimised. So, the transform parameters of the CombinationTransform are the parameters of the CurrentTransform .
Note: It is mandatory to set a current transform. An initial transform is not mandatory.
Definition at line 56 of file itkAdvancedCombinationTransform.h .
using ConstPointer = SmartPointer< const Self >
using CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer
using CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer
using CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType
using CurrentTransformPointer = typename CurrentTransformType::Pointer
using CurrentTransformType = Superclass
using InitialTransformConstPointer = typename InitialTransformType::ConstPointer
using InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer
using InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType
using InitialTransformPointer = typename InitialTransformType::Pointer
using InitialTransformType = Superclass
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
using Pointer = SmartPointer< Self >
using Self = AdvancedCombinationTransform
using Superclass = AdvancedTransform < TScalarType , NDimensions, NDimensions >
using TransformType = typename Superclass::TransformType
using TransformTypeConstPointer = typename TransformType::ConstPointer
using TransformTypePointer = typename TransformType::Pointer
using ConstPointer = SmartPointer< const Self >
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
using MovingImageGradientType = OutputCovariantVectorType
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
using NonZeroJacobianIndicesType = std::vector< unsigned long >
using Pointer = SmartPointer< Self >
using Self = AdvancedTransform
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
using Superclass = Transform< TScalarType , NInputDimensions, NOutputDimensions >
using TransformType = Transform< TScalarType , NInputDimensions, NOutputDimensions >
using TransformTypeConstPointer = typename TransformType::ConstPointer
using TransformTypePointer = typename TransformType::Pointer
void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
virtual const char * GetClassName () const
const FixedParametersType & GetFixedParameters () const override
bool GetHasNonZeroSpatialHessian () const override
bool GetInverse (Self *inverse) const
void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
const TransformTypePointer GetNthTransform (SizeValueType n) const
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override
NumberOfParametersType GetNumberOfParameters () const override
SizeValueType GetNumberOfTransforms () const
const ParametersType & GetParameters () const override
void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
TransformCategoryEnum GetTransformCategory () const override
virtual bool GetUseAddition () const
virtual bool GetUseComposition () const
bool HasNonZeroJacobianOfSpatialHessian () const
bool IsLinear () const override
ITK_DISALLOW_COPY_AND_MOVE (AdvancedCombinationTransform )
itkGetModifiableObjectMacro (CurrentTransform, CurrentTransformType )
itkGetModifiableObjectMacro (InitialTransform, InitialTransformType )
itkStaticConstMacro (SpaceDimension, unsigned int , NDimensions)
void SetCurrentTransform (CurrentTransformType *_arg)
void SetFixedParameters (const FixedParametersType &fixedParam) override
void SetInitialTransform (InitialTransformType *_arg)
void SetParameters (const ParametersType ¶m) override
void SetParametersByValue (const ParametersType ¶m) override
void SetUseAddition (bool _arg)
void SetUseComposition (bool _arg)
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 ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual const char * GetClassName () const
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
virtual bool GetHasNonZeroSpatialHessian () const
virtual void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
virtual void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const =0
virtual void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const =0
ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform )
itkStaticConstMacro (InputSpaceDimension, unsigned int , NInputDimensions)
itkStaticConstMacro (OutputSpaceDimension, unsigned int , NOutputDimensions)
AdvancedCombinationTransform ()
void EvaluateJacobianWithImageGradientProductNoCurrentTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void EvaluateJacobianWithImageGradientProductNoInitialTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void EvaluateJacobianWithImageGradientProductUseAddition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void EvaluateJacobianWithImageGradientProductUseComposition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void GetJacobianNoCurrentTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetJacobianNoInitialTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianUseAddition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetJacobianUseComposition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
void GetSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
void GetSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh) const
void GetSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh) const
void GetSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void GetSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void GetSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
void GetSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
OutputPointType TransformPointNoCurrentTransform (const InputPointType &point) const
OutputPointType TransformPointNoInitialTransform (const InputPointType &point) const
OutputPointType TransformPointUseAddition (const InputPointType &point) const
OutputPointType TransformPointUseComposition (const InputPointType &point) const
void UpdateCombinationMethod ()
~AdvancedCombinationTransform () override=default
AdvancedTransform ()=default
~AdvancedTransform () override=default