Loading...
Searching...
No Matches
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions > Class Template Reference
Components » Transforms

`#include <itkWeightedCombinationTransform.h>`

## Detailed Description

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

Implements a weighted linear combination of multiple transforms.

This transform implements:

where are the weights, which are the transform's parameters, and can be set/get by Set/GetParameters().

Alternatively, if the NormalizeWeights parameter is set to true, the transformation is as follows:

Definition at line 42 of file itkWeightedCombinationTransform.h.

Inheritance diagram for itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >:
[legend]

## Public Types

using | ConstPointer = SmartPointer<const Self>
using | JacobianOfSpatialHessianType
using | JacobianOfSpatialJacobianType
using | NonZeroJacobianIndicesType
using | Pointer = SmartPointer<Self>
using | Self = WeightedCombinationTransform
using | SpatialHessianType
using | SpatialJacobianType
using | Superclass = AdvancedTransform<TScalarType, NInputDimensions, NOutputDimensions>
using | TransformContainerType = std::vector<TransformPointer>
using | TransformPointer = typename TransformType::Pointer
using | TransformType = Transform<TScalarType, NInputDimensions, NOutputDimensions>
Public Types inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
using | ConstPointer
using | InternalMatrixType
using | InverseTransformBaseType
using | JacobianOfSpatialHessianType
using | JacobianOfSpatialJacobianType
using | MovingImageGradientType
using | MovingImageGradientValueType
using | NonZeroJacobianIndicesType
using | Pointer
using | Self
using | SpatialHessianType
using | SpatialJacobianType
using | Superclass
using | TransformType
using | TransformTypeConstPointer
using | TransformTypePointer

## Public Member Functions

virtual const char * | GetClassName () const
const ParametersType & | GetFixedParameters () const override
void | GetJacobian (const InputPointType &inputPoint, JacobianType &jac, NonZeroJacobianIndicesType &nzji) const override
void | GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
void | GetJacobianOfSpatialHessian (const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
void | GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
void | GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
virtual bool | GetNormalizeWeights () const
NumberOfParametersType | GetNumberOfParameters () const override
void | GetSpatialHessian (const InputPointType &, SpatialHessianType &) const override
void | GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const override
const TransformContainerType & | GetTransformContainer () const
| ITK_DISALLOW_COPY_AND_MOVE (WeightedCombinationTransform)
| itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
| itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
void | SetFixedParameters (const ParametersType &) override
virtual void | SetNormalizeWeights (bool _arg)
void | SetParameters (const ParametersType &param) override
virtual void | SetTransformContainer (const TransformContainerType &transformContainer)
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &) const override
OutputPointType | TransformPoint (const InputPointType &inputPoint) 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 void | EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const
virtual bool | GetHasNonZeroSpatialHessian () const
virtual NumberOfParametersType | GetNumberOfNonZeroJacobianIndices () const
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
| itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)

## Static Public Member Functions

static Pointer | New ()

## Protected Member Functions

| WeightedCombinationTransform ()
| ~WeightedCombinationTransform () override=default
Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
| AdvancedTransform ()=default
| ~AdvancedTransform () override=default

## Protected Attributes

NonZeroJacobianIndicesType | m_NonZeroJacobianIndices {}
double | m_SumOfWeights {}
TransformContainerType | m_TransformContainer {}
Protected Attributes inherited from itk::AdvancedTransform< TScalarType, 3, 3 >
bool | m_HasNonZeroJacobianOfSpatialHessian
bool | m_HasNonZeroSpatialHessian

## Private Attributes

bool | m_NormalizeWeights {}

## Member Typedef Documentation

## ConstPointer

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer = SmartPointer<const Self>

Definition at line 52 of file itkWeightedCombinationTransform.h.

## JacobianOfSpatialHessianType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialHessianType

Definition at line 139 of file itkAdvancedTransform.h.

## JacobianOfSpatialJacobianType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialJacobianType

Definition at line 135 of file itkAdvancedTransform.h.

## NonZeroJacobianIndicesType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::NonZeroJacobianIndicesType

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

Definition at line 133 of file itkAdvancedTransform.h.

## Pointer

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Pointer = SmartPointer<Self>

Definition at line 51 of file itkWeightedCombinationTransform.h.

## Self

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Self = WeightedCombinationTransform

Standard class typedefs.

Definition at line 49 of file itkWeightedCombinationTransform.h.

## SpatialHessianType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType

Definition at line 137 of file itkAdvancedTransform.h.

## SpatialJacobianType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialJacobianType

Definition at line 134 of file itkAdvancedTransform.h.

## Superclass

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Superclass = AdvancedTransform<TScalarType, NInputDimensions, NOutputDimensions>

Definition at line 50 of file itkWeightedCombinationTransform.h.

## TransformContainerType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformContainerType = std::vector<TransformPointer>

Definition at line 87 of file itkWeightedCombinationTransform.h.

## TransformPointer

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPointer = typename TransformType::Pointer

Todo
  : shouldn't these be ConstPointers?

Definition at line 86 of file itkWeightedCombinationTransform.h.

## TransformType

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

using itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformType = Transform<TScalarType, NInputDimensions, NOutputDimensions>

New typedefs in this class:

Definition at line 84 of file itkWeightedCombinationTransform.h.

## Constructor & Destructor Documentation

## WeightedCombinationTransform()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::WeightedCombinationTransform | ( |  | ) |

protected

## ~WeightedCombinationTransform()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::~WeightedCombinationTransform | ( |  | ) |

override protected default

## Member Function Documentation

## GetClassName()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

virtual const char * itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::AdvancedTransform< TScalarType, 3, 3 >.

## GetFixedParameters()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

const ParametersType & itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetFixedParameters | ( |  | ) | const

inline override

Get the Fixed Parameters.

Definition at line 141 of file itkWeightedCombinationTransform.h.

## GetJacobian()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian | ( | const InputPointType & | inputPoint,
|  | JacobianType & | jac,
|  | NonZeroJacobianIndicesType & | nzji ) const

override virtual

This returns a sparse version of the Jacobian of the transformation. In this class however, the Jacobian is not sparse. However, it is a useful function, since the Jacobian is passed by reference, which makes it thread-safe, unlike the normal GetJacobian function.

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

## GetJacobianOfSpatialHessian() [1/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian | ( | const InputPointType & | ,
|  | JacobianOfSpatialHessianType & | ,
|  | NonZeroJacobianIndicesType & | ) const

inline override virtual

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

Definition at line 221 of file itkWeightedCombinationTransform.h.

## GetJacobianOfSpatialHessian() [2/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian | ( | const InputPointType & | ,
|  | SpatialHessianType & | ,
|  | JacobianOfSpatialHessianType & | ,
|  | NonZeroJacobianIndicesType & | ) const

inline override

Definition at line 230 of file itkWeightedCombinationTransform.h.

## GetJacobianOfSpatialJacobian() [1/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian | ( | const InputPointType & | ,
|  | JacobianOfSpatialJacobianType & | ,
|  | NonZeroJacobianIndicesType & | ) const

inline override virtual

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

Definition at line 202 of file itkWeightedCombinationTransform.h.

## GetJacobianOfSpatialJacobian() [2/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian | ( | const InputPointType & | ,
|  | SpatialJacobianType & | ,
|  | JacobianOfSpatialJacobianType & | ,
|  | NonZeroJacobianIndicesType & | ) const

inline override

Definition at line 211 of file itkWeightedCombinationTransform.h.

## GetNormalizeWeights()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

virtual bool itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNormalizeWeights | ( |  | ) | const

virtual

## GetNumberOfParameters()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

NumberOfParametersType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfParameters | ( |  | ) | const

inline override

Return the number of sub-transforms that have been set.

Definition at line 150 of file itkWeightedCombinationTransform.h.

## GetSpatialHessian()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialHessian | ( | const InputPointType & | ,
|  | SpatialHessianType & | ) const

inline override virtual

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

Definition at line 195 of file itkWeightedCombinationTransform.h.

## GetSpatialJacobian()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialJacobian | ( | const InputPointType & | ,
|  | SpatialJacobianType & | ) const

inline override virtual

Must be provided.

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

Definition at line 188 of file itkWeightedCombinationTransform.h.

## GetTransformContainer()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

const TransformContainerType & itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetTransformContainer | ( |  | ) | const

inline

Return the vector of sub-transforms by const reference. So, if you want to add a sub-transform, you should do something like this: TransformContainerType vec = transform->GetTransformContainer(); vec.push_back( newsubtransformPointer ); transform->SetTransformContainer( vec ); Although perhaps not really efficient, this makes sure that this->Modified() is called when the transform container is updated.

Definition at line 180 of file itkWeightedCombinationTransform.h.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ITK_DISALLOW_COPY_AND_MOVE | ( | WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions > |  | ) |

## itkStaticConstMacro() [1/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

itk::WeightedCombinationTransform< 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::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro | ( | OutputSpaceDimension | ,
|  | unsigned int | ,
|  | NOutputDimensions | )

## New()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

Pointer itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::New | ( |  | ) |

static

New method for creating an object using a factory.

## SetFixedParameters()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetFixedParameters | ( | const ParametersType & |  | ) |

inline override

Set the fixed parameters.

Definition at line 133 of file itkWeightedCombinationTransform.h.

## SetNormalizeWeights()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetNormalizeWeights | ( | bool | _arg | ) |

virtual

Set/get if the weights (parameters) should be normalized. Default: false.

## SetParameters()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetParameters | ( | const ParametersType & | param | ) |

override

Set the parameters. Computes the sum of weights (which is the normalization term). And checks if the number of parameters is correct

## SetTransformContainer()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTransformContainer | ( | const TransformContainerType & | transformContainer | ) |

inline virtual

Set the vector of subtransforms. Calls a this->Modified()

Definition at line 163 of file itkWeightedCombinationTransform.h.

## TransformCovariantVector()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

OutputCovariantVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector | ( | const InputCovariantVectorType & |  | ) | const

inline override

Definition at line 110 of file itkWeightedCombinationTransform.h.

## TransformPoint()

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

OutputPointType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPoint | ( | const InputPointType & | inputPoint | ) | const

override

Method to transform a point.

## TransformVector() [1/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

OutputVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector | ( | const InputVectorType & |  | ) | const

inline override

These vector transforms are not implemented for this transform.

Definition at line 95 of file itkWeightedCombinationTransform.h.

## TransformVector() [2/2]

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

OutputVnlVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector | ( | const InputVnlVectorType & |  | ) | const

inline override

Definition at line 102 of file itkWeightedCombinationTransform.h.

## Field Documentation

## m_NonZeroJacobianIndices

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

NonZeroJacobianIndicesType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_NonZeroJacobianIndices {}

protected

Precomputed nonzero Jacobian indices (simply all params)

Definition at line 247 of file itkWeightedCombinationTransform.h.

## m_NormalizeWeights

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

bool itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_NormalizeWeights {}

private

Definition at line 254 of file itkWeightedCombinationTransform.h.

## m_SumOfWeights

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

double itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_SumOfWeights {}

protected

Definition at line 244 of file itkWeightedCombinationTransform.h.

## m_TransformContainer

template<class TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>

TransformContainerType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_TransformContainer {}

protected

Definition at line 243 of file itkWeightedCombinationTransform.h.

Generated on 1768596610 for elastix by 1.15.0 |