#include <itkAdvancedCombinationTransform.h>
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:
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.
Public Member Functions | |
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 |
Public Member Functions inherited from itk::AdvancedTransform< TScalarType, 3, 3 > | |
void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override |
virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const |
ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform) | |
itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions) | |
itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions) | |
Static Public Member Functions | |
static Pointer | New () |
Private Types | |
using | EvaluateJacobianWithImageGradientProductFunctionPointer |
using | GetJacobianOfSpatialHessianFunctionPointer |
using | GetJacobianOfSpatialHessianFunctionPointer2 |
using | GetJacobianOfSpatialJacobianFunctionPointer |
using | GetJacobianOfSpatialJacobianFunctionPointer2 |
using | GetSparseJacobianFunctionPointer |
using | GetSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &, SpatialHessianType &) const |
using | GetSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &, SpatialJacobianType &) const |
using | TransformPointFunctionPointer = OutputPointType (Self::*)(const InputPointType &) const |
Static Private Attributes | |
static constexpr const char * | NoCurrentTransformSet = "No current transform set in the AdvancedCombinationTransform" |
Additional Inherited Members | |
Protected Attributes inherited from itk::AdvancedTransform< TScalarType, 3, 3 > | |
bool | m_HasNonZeroJacobianOfSpatialHessian |
bool | m_HasNonZeroSpatialHessian |
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::ConstPointer = SmartPointer<const Self> |
Definition at line 65 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer |
Definition at line 119 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer |
Definition at line 121 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType |
Definition at line 120 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformPointer = typename CurrentTransformType::Pointer |
Definition at line 118 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformType = Superclass |
Typedefs for the CurrentTransform.
Definition at line 117 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 565 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 578 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 581 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 571 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 574 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 562 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 570 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 569 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformConstPointer = typename InitialTransformType::ConstPointer |
Definition at line 112 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer |
Definition at line 114 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType |
Definition at line 113 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformPointer = typename InitialTransformType::Pointer |
Definition at line 111 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformType = Superclass |
Typedefs for the InitialTransform.
Definition at line 110 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InverseTransformBaseType = typename Superclass::InverseTransformBaseType |
Definition at line 98 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Pointer = SmartPointer<Self> |
Definition at line 64 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Self = AdvancedCombinationTransform |
Standard itk.
Definition at line 62 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions> |
Definition at line 63 of file itkAdvancedCombinationTransform.h.
|
private |
Typedefs for function pointers.
Definition at line 561 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformType = typename Superclass::TransformType |
Transform typedefs for the from Superclass.
Definition at line 105 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformTypeConstPointer = typename TransformType::ConstPointer |
Definition at line 107 of file itkAdvancedCombinationTransform.h.
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformTypePointer = typename TransformType::Pointer |
Definition at line 106 of file itkAdvancedCombinationTransform.h.
|
protected |
Constructor.
|
overrideprotecteddefault |
Destructor.
|
overridevirtual |
Compute the inner product of the Jacobian with the moving image gradient.
Reimplemented from itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
CURRENT ONLY:
|
protected |
Methods to compute the inner product of the Jacobian with the moving image gradient. ADDITION:
|
protected |
COMPOSITION:
|
virtual |
ITK Type info.
Reimplemented from itk::AdvancedTransform< TScalarType, 3, 3 >.
Reimplemented in elastix::AdvancedAffineTransformElastix< TElastix >, elastix::AdvancedBSplineTransform< TElastix >, elastix::AffineDTITransformElastix< TElastix >, elastix::AffineLogStackTransform< TElastix >, elastix::AffineLogTransformElastix< TElastix >, elastix::BSplineStackTransform< TElastix >, elastix::DeformationFieldTransform< TElastix >, elastix::EulerStackTransform< TElastix >, elastix::EulerTransformElastix< TElastix >, elastix::ExternalTransform< TElastix >, elastix::MultiBSplineTransformWithNormal< TElastix >, elastix::RecursiveBSplineTransform< TElastix >, elastix::SimilarityTransformElastix< TElastix >, elastix::SplineKernelTransform< TElastix >, elastix::TranslationStackTransform< TElastix >, elastix::TranslationTransformElastix< TElastix >, elastix::WeightedCombinationTransformElastix< TElastix >, itk::DeformationFieldRegulizer< itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > >, and itk::GPUAdvancedCombinationTransform< TScalarType, NDimensions, TParentTransform >.
|
override |
Get the fixed parameters from the CurrentTransform.
|
overridevirtual |
Whether the advanced transform has nonzero matrices.
Reimplemented from itk::AdvancedTransform< TScalarType, 3, 3 >.
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetInverse | ( | Self * | inverse | ) | const |
Return the inverse of the transform. This is only possible when:
|
overridevirtual |
Compute the (sparse) Jacobian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
CURRENT ONLY:
|
overridevirtual |
Compute the Jacobian of the spatial Hessian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
overridevirtual |
Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
|
protected |
CURRENT ONLY:
|
protected |
|
protected |
Methods to compute the Jacobian of the spatial Hessian. ADDITION:
|
protected |
|
protected |
COMPOSITION:
|
protected |
|
overridevirtual |
Compute the Jacobian of the spatial Jacobian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
overridevirtual |
Compute both the spatial Jacobian and the Jacobian of the spatial Jacobian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
|
protected |
CURRENT ONLY:
|
protected |
|
protected |
Methods to compute the Jacobian of the spatial Jacobian. ADDITION:
|
protected |
|
protected |
COMPOSITION:
|
protected |
|
protected |
Methods to compute the sparse Jacobian. ADDITION:
|
protected |
COMPOSITION:
const TransformTypePointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNthTransform | ( | SizeValueType | n | ) | const |
Get the Nth current transform. Exact interface to the ITK4 MultiTransform::GetNthTransform( SizeValueType n )
|
overridevirtual |
Get the number of nonzero Jacobian indices. By default all.
Reimplemented from itk::AdvancedTransform< TScalarType, 3, 3 >.
|
override |
Return the number of parameters that completely define the CurrentTransform.
SizeValueType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNumberOfTransforms | ( | ) | const |
Return the number of sub-transforms.
|
override |
Get the transformation parameters from the CurrentTransform.
|
overridevirtual |
Compute the spatial Hessian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
CURRENT ONLY:
|
protected |
Methods to compute the spatial Hessian. ADDITION:
|
protected |
COMPOSITION:
|
overridevirtual |
Compute the spatial Jacobian of the transformation.
Implements itk::AdvancedTransform< TScalarType, 3, 3 >.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
CURRENT ONLY:
|
protected |
Methods to compute the spatial Jacobian. ADDITION:
|
protected |
COMPOSITION:
|
override |
Special handling for combination transform. If all transforms are linear, then return category Linear. Otherwise if all transforms set to optimize are DisplacementFields, then return DisplacementField category.
|
virtual |
|
virtual |
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::HasNonZeroJacobianOfSpatialHessian | ( | ) | const |
|
override |
Return whether the transform is linear (or actually: affine) Returns true when both initial and current transform are linear
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::ITK_DISALLOW_COPY_AND_MOVE | ( | AdvancedCombinationTransform< TScalarType, NDimensions > | ) |
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkGetModifiableObjectMacro | ( | CurrentTransform | , |
CurrentTransformType | ) |
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkGetModifiableObjectMacro | ( | InitialTransform | , |
InitialTransformType | ) |
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
NDimensions | ) |
Input and Output space dimension.
|
static |
New method for creating an object using a factory.
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetCurrentTransform | ( | CurrentTransformType * | _arg | ) |
Set/Get a pointer to the CurrentTransform. Make sure to set the CurrentTransform before calling functions like TransformPoint(), GetJacobian(), SetParameters() etc.
|
override |
Set the fixed parameters in the CurrentTransform.
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetInitialTransform | ( | InitialTransformType * | _arg | ) |
Set/Get a pointer to the InitialTransform.
|
override |
Set the transformation parameters in the CurrentTransform.
|
override |
Set the transformation parameters in the CurrentTransform. This method forces the transform to copy the parameters.
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetUseAddition | ( | bool | _arg | ) |
Control the way transforms are combined.
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetUseComposition | ( | bool | _arg | ) |
Control the way transforms are combined.
|
inlineoverride |
Definition at line 185 of file itkAdvancedCombinationTransform.h.
|
override |
Method to transform a point.
|
protected |
NO CURRENT TRANSFORM SET: throw an exception.
|
protected |
CURRENT ONLY:
|
protected |
Methods to transform a point. ADDITION:
|
protected |
COMPOSITION:
|
inlineoverride |
ITK4 change: The following pure virtual functions must be overloaded. For now just throw an exception, since these are not used in elastix.
Definition at line 170 of file itkAdvancedCombinationTransform.h.
|
inlineoverride |
Definition at line 177 of file itkAdvancedCombinationTransform.h.
|
protected |
Set the SelectedTransformPointFunction and the SelectedGetJacobianFunction.
|
private |
Definition at line 558 of file itkAdvancedCombinationTransform.h.
|
private |
Declaration of members.
Definition at line 557 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 604 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 615 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 618 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 609 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 612 of file itkAdvancedCombinationTransform.h.
|
private |
A pointer to one of the following functions:
Definition at line 603 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 608 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 607 of file itkAdvancedCombinationTransform.h.
|
private |
A pointer to one of the following functions:
Definition at line 592 of file itkAdvancedCombinationTransform.h.
|
private |
How to combine the transformations. Composition by default.
Definition at line 623 of file itkAdvancedCombinationTransform.h.
|
private |
Definition at line 624 of file itkAdvancedCombinationTransform.h.
|
staticconstexprprivate |
Exception text.
Definition at line 554 of file itkAdvancedCombinationTransform.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |