go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions > Class Template Reference

#include <itkWeightedCombinationTransform.h>

Detailed Description

template<typename 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:

\‍[T(x) = x + \sum_i w_i ( T_i(x) - x )\‍]

where $w_i$ 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:

\‍[T(x) = \sum_i w_i T_i(x) / \sum_i w_i\‍]

Definition at line 42 of file itkWeightedCombinationTransform.h.

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

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

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 TransformContainerTypeGetTransformContainer () const
 ITK_DISALLOW_COPY_AND_MOVE (WeightedCombinationTransform)
 itkOverrideGetNameOfClassMacro (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)
 itkOverrideGetNameOfClassMacro (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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename 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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::WeightedCombinationTransform ( )
protected

◆ ~WeightedCombinationTransform()

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

Member Function Documentation

◆ GetFixedParameters()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ParametersType & itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetFixedParameters ( ) const
inlineoverride

Get the Fixed Parameters.

Definition at line 141 of file itkWeightedCombinationTransform.h.

◆ GetJacobian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType & inputPoint,
JacobianType & jac,
NonZeroJacobianIndicesType & nzji ) const
overridevirtual

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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType & ,
JacobianOfSpatialHessianType & ,
NonZeroJacobianIndicesType &  ) const
inlineoverridevirtual

◆ GetJacobianOfSpatialHessian() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType & ,
SpatialHessianType & ,
JacobianOfSpatialHessianType & ,
NonZeroJacobianIndicesType &  ) const
inlineoverride

Definition at line 230 of file itkWeightedCombinationTransform.h.

◆ GetJacobianOfSpatialJacobian() [1/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType & ,
JacobianOfSpatialJacobianType & ,
NonZeroJacobianIndicesType &  ) const
inlineoverridevirtual

◆ GetJacobianOfSpatialJacobian() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType & ,
SpatialJacobianType & ,
JacobianOfSpatialJacobianType & ,
NonZeroJacobianIndicesType &  ) const
inlineoverride

Definition at line 211 of file itkWeightedCombinationTransform.h.

◆ GetNormalizeWeights()

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

◆ GetNumberOfParameters()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
NumberOfParametersType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfParameters ( ) const
inlineoverride

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

Definition at line 150 of file itkWeightedCombinationTransform.h.

◆ GetSpatialHessian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialHessian ( const InputPointType & ,
SpatialHessianType &  ) const
inlineoverridevirtual

◆ GetSpatialJacobian()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialJacobian ( const InputPointType & ,
SpatialJacobianType &  ) const
inlineoverridevirtual

Must be provided.

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

Definition at line 188 of file itkWeightedCombinationTransform.h.

◆ GetTransformContainer()

template<typename 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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ITK_DISALLOW_COPY_AND_MOVE ( WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions > )

◆ itkOverrideGetNameOfClassMacro()

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

Run-time type information (and related methods).

◆ itkStaticConstMacro() [1/2]

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

◆ New()

template<typename 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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetFixedParameters ( const ParametersType & )
inlineoverride

Set the fixed parameters.

Definition at line 133 of file itkWeightedCombinationTransform.h.

◆ SetNormalizeWeights()

template<typename 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<typename 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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTransformContainer ( const TransformContainerType & transformContainer)
inlinevirtual

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

Definition at line 163 of file itkWeightedCombinationTransform.h.

◆ TransformCovariantVector()

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputCovariantVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputCovariantVectorType & ) const
inlineoverride

Definition at line 110 of file itkWeightedCombinationTransform.h.

◆ TransformPoint()

template<typename 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<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorType & ) const
inlineoverride

These vector transforms are not implemented for this transform.

Definition at line 95 of file itkWeightedCombinationTransform.h.

◆ TransformVector() [2/2]

template<typename TScalarType, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVnlVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVnlVectorType & ) const
inlineoverride

Definition at line 102 of file itkWeightedCombinationTransform.h.

Member Data Documentation

◆ m_NonZeroJacobianIndices

template<typename 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<typename 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<typename 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<typename 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 1774142652 for elastix by doxygen 1.15.0 elastix logo