Loading...
Searching...
No Matches
itk::AdvancedVersorTransform< TScalarType > Class Template Reference
Components » Transforms

`#include <itkAdvancedVersorTransform.h>`

## Detailed Description

template<class TScalarType = double>
class itk::AdvancedVersorTransform< TScalarType >

AdvancedVersorTransform of a vector space (e.g. space coordinates)

This transform applies a rotation to the space. Rotation is about a user specified center.

The serialization of the optimizable parameters is an array of 3 elements representing the right part of the versor.

The serialization of the fixed parameters is an array of 3 elements defining the center of rotation.

Todo
  Need to make sure that the translation parameters in the baseclass cannot be set to non-zero values.

NB: SK: this class is just to have the AdvancedSimilarity3DTransform. It is not complete.

Definition at line 67 of file itkAdvancedVersorTransform.h.

Inheritance diagram for itk::AdvancedVersorTransform< TScalarType >:
[legend]

## Public Types

using | AngleType = typename VersorType::ValueType
using | AxisType = typename VersorType::VectorType
using | ConstPointer = SmartPointer<const Self>
typedef typename SpatialJacobianType::InternalMatrixType | InternalMatrixType
typedef std::vector< SpatialHessianType > | JacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianType > | JacobianOfSpatialJacobianType
typedef std::vector< unsigned long > | NonZeroJacobianIndicesType
using | Pointer = SmartPointer<Self>
using | Self = AdvancedVersorTransform
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > | SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > | SpatialJacobianType
using | Superclass = AdvancedRigid3DTransform<TScalarType>
using | VersorType = Versor<TScalarType>
using | VnlQuaternionType = vnl_quaternion<TScalarType>
Public Types inherited from itk::AdvancedRigid3DTransform< double >
using | ConstPointer
typedef typename SpatialJacobianType::InternalMatrixType | InternalMatrixType
typedef std::vector< SpatialHessianType > | JacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianType > | JacobianOfSpatialJacobianType
typedef std::vector< unsigned long > | NonZeroJacobianIndicesType
using | Pointer
using | Self
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > | SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > | SpatialJacobianType
using | Superclass
Public Types inherited from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >
using | CenterType
using | ConstPointer
typedef typename SpatialJacobianType::InternalMatrixType | InternalMatrixType
using | InverseMatrixType
typedef std::vector< SpatialHessianType > | JacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianType > | JacobianOfSpatialJacobianType
using | MatrixType
typedef std::vector< unsigned long > | NonZeroJacobianIndicesType
using | OffsetType
using | Pointer
using | Self
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > | SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > | SpatialJacobianType
using | Superclass
using | TranslationType
Public Types inherited from itk::AdvancedTransform< double, NInputDimensions, NOutputDimensions >
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
void | GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
const ParametersType & | GetParameters () const override
virtual const VersorType & | GetVersor ()
| itkStaticConstMacro (InputSpaceDimension, unsigned int, 3)
| itkStaticConstMacro (OutputSpaceDimension, unsigned int, 3)
| itkStaticConstMacro (ParametersDimension, unsigned int, 3)
| itkStaticConstMacro (SpaceDimension, unsigned int, 3)
void | SetIdentity () override
void | SetParameters (const ParametersType &parameters) override
void | SetRotation (const AxisType &axis, AngleType angle)
void | SetRotation (const VersorType &versor)
Public Member Functions inherited from itk::AdvancedRigid3DTransform< double >
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedRigid3DTransform)
| itkStaticConstMacro (SpaceDimension, unsigned int, 3)
bool | MatrixIsOrthogonal (const MatrixType &matrix, double tol=1e-10)
void | SetMatrix (const MatrixType &matrix) override
void | SetParameters (const ParametersType &parameters) override
Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >
const InputPointType & | GetCenter () const
const FixedParametersType & | GetFixedParameters () const override
void | GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
void | GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
const MatrixType & | GetMatrix () const
const ParametersType & | GetParameters () const override
void | GetSpatialHessian (const InputPointType &, SpatialHessianType &) const override
void | GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const override
TransformCategoryEnum | GetTransformCategory () const override
const OutputVectorType & | GetTranslation () const
bool | IsLinear () const override
| itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
void | SetCenter (const InputPointType &center)
void | SetFixedParameters (const FixedParametersType &) override
void | SetParameters (const ParametersType &parameters) override
void | SetTranslation (const OutputVectorType &translation)
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector) const override
OutputPointType | TransformPoint (const InputPointType &point) const override
OutputVectorType | TransformVector (const InputVectorType &vector) const override
Public Member Functions inherited from itk::AdvancedTransform< double, NInputDimensions, NOutputDimensions >
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 ()
Static Public Member Functions inherited from itk::AdvancedRigid3DTransform< double >
static Pointer | New ()
Static Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >
static Pointer | New ()

## Protected Member Functions

| AdvancedVersorTransform ()
| AdvancedVersorTransform (const MatrixType &matrix, const OutputVectorType &offset)
| AdvancedVersorTransform (unsigned int paramDims)
void | ComputeMatrix () override
void | ComputeMatrixParameters () override
void | PrintSelf (std::ostream &os, Indent indent) const override
void | SetVarVersor (const VersorType &newVersor)
| ~AdvancedVersorTransform () override=default
Protected Member Functions inherited from itk::AdvancedRigid3DTransform< double >
| AdvancedRigid3DTransform (unsigned int paramDim)
void | PrintSelf (std::ostream &s, Indent indent) const override
| ~AdvancedRigid3DTransform () override=default
Protected Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >
| AdvancedMatrixOffsetTransformBase (const unsigned int paramDims=ParametersDimension)
virtual void | ComputeOffset ()
void | ComputeTranslation ()
const OutputVectorType & | GetOffset () const
void | PrintSelf (std::ostream &s, Indent indent) const override
void | SetVarMatrix (const MatrixType &matrix)
void | SetVarTranslation (const OutputVectorType &translation)
| ~AdvancedMatrixOffsetTransformBase () override=default
Protected Member Functions inherited from itk::AdvancedTransform< double, NInputDimensions, NOutputDimensions >
| AdvancedTransform ()=default
| ~AdvancedTransform () override=default

## Private Member Functions

| AdvancedVersorTransform (const Self &other)
const Self & | operator= (const Self &)

## Private Attributes

VersorType | m_Versor {}

## Additional Inherited Members

Protected Attributes inherited from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >
JacobianOfSpatialHessianType | m_JacobianOfSpatialHessian
JacobianOfSpatialJacobianType | m_JacobianOfSpatialJacobian
NonZeroJacobianIndicesType | m_NonZeroJacobianIndices
SpatialHessianType | m_SpatialHessian
Protected Attributes inherited from itk::AdvancedTransform< double, NInputDimensions, NOutputDimensions >
bool | m_HasNonZeroJacobianOfSpatialHessian
bool | m_HasNonZeroSpatialHessian

## Member Typedef Documentation

## AngleType

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::AngleType = typename VersorType::ValueType

Definition at line 119 of file itkAdvancedVersorTransform.h.

## AxisType

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::AxisType = typename VersorType::VectorType

Definition at line 118 of file itkAdvancedVersorTransform.h.

## ConstPointer

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::ConstPointer = SmartPointer<const Self>

Definition at line 74 of file itkAdvancedVersorTransform.h.

## InternalMatrixType

template<class TScalarType = double>

## JacobianOfSpatialHessianType

template<class TScalarType = double>

## JacobianOfSpatialJacobianType

template<class TScalarType = double>

## NonZeroJacobianIndicesType

template<class TScalarType = double>

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

## Pointer

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::Pointer = SmartPointer<Self>

Definition at line 73 of file itkAdvancedVersorTransform.h.

## Self

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::Self = AdvancedVersorTransform

Standard Self Typedef

Definition at line 71 of file itkAdvancedVersorTransform.h.

## SpatialHessianType

template<class TScalarType = double>

## SpatialJacobianType

template<class TScalarType = double>

## Superclass

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::Superclass = AdvancedRigid3DTransform<TScalarType>

Definition at line 72 of file itkAdvancedVersorTransform.h.

## VersorType

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::VersorType = Versor<TScalarType>

Versor Type

Definition at line 117 of file itkAdvancedVersorTransform.h.

## VnlQuaternionType

template<class TScalarType = double>

using itk::AdvancedVersorTransform< TScalarType >::VnlQuaternionType = vnl_quaternion<TScalarType>

VnlQuaternion Type

Definition at line 114 of file itkAdvancedVersorTransform.h.

## Constructor & Destructor Documentation

## AdvancedVersorTransform() [1/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform | ( | const MatrixType & | matrix,
|  | const OutputVectorType & | offset )

protected

Construct an AdvancedVersorTransform object

## AdvancedVersorTransform() [2/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform | ( | unsigned int | paramDims | ) |

protected

## AdvancedVersorTransform() [3/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform | ( |  | ) |

protected

## ~AdvancedVersorTransform()

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::~AdvancedVersorTransform | ( |  | ) |

override protected default

Destroy an AdvancedVersorTransform object

## AdvancedVersorTransform() [4/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform | ( | const Self & | other | ) |

private

Copy a AdvancedVersorTransform object

## Member Function Documentation

## ComputeMatrix()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::ComputeMatrix | ( |  | ) |

override protected virtual

Compute Matrix Compute the components of the rotation matrix in the superclass

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >.

## ComputeMatrixParameters()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::ComputeMatrixParameters | ( |  | ) |

override protected virtual

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >.

## GetClassName()

template<class TScalarType = double>

virtual const char * itk::AdvancedVersorTransform< TScalarType >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::AdvancedRigid3DTransform< double >.

Reimplemented in itk::AdvancedSimilarity3DTransform< TScalarType >, itk::AdvancedSimilarity3DTransform< float >, itk::AdvancedVersorRigid3DTransform< TScalarType >, itk::AdvancedVersorRigid3DTransform< double >, itk::AdvancedVersorRigid3DTransform< float >, itk::AdvancedVersorRigid3DTransform< TScalarType >, and itk::GPUAdvancedSimilarity3DTransform< TScalarType, TParentTransform >.

## GetJacobian()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::GetJacobian | ( | const InputPointType & | ,
|  | JacobianType & | ,
|  | NonZeroJacobianIndicesType & | ) const

override virtual

This method computes the Jacobian matrix of the transformation.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >.

## GetParameters()

template<class TScalarType = double>

const ParametersType & itk::AdvancedVersorTransform< TScalarType >::GetParameters | ( |  | ) | const

override

Get the Transformation Parameters.

## GetVersor()

template<class TScalarType = double>

virtual const VersorType & itk::AdvancedVersorTransform< TScalarType >::GetVersor | ( |  | ) |

virtual

## itkStaticConstMacro() [1/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro | ( | InputSpaceDimension | ,
|  | unsigned int | ,
|  | 3 | )

## itkStaticConstMacro() [2/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro | ( | OutputSpaceDimension | ,
|  | unsigned int | ,
|  | 3 | )

## itkStaticConstMacro() [3/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro | ( | ParametersDimension | ,
|  | unsigned int | ,
|  | 3 | )

## itkStaticConstMacro() [4/4]

template<class TScalarType = double>

itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro | ( | SpaceDimension | ,
|  | unsigned int | ,
|  | 3 | )

Dimension of parameters

## New()

template<class TScalarType = double>

Pointer itk::AdvancedVersorTransform< TScalarType >::New | ( |  | ) |

static

New macro for creation of through a Smart Pointer

## operator=()

template<class TScalarType = double>

const Self & itk::AdvancedVersorTransform< TScalarType >::operator= | ( | const Self & |  | ) |

private

Assignment operator

## PrintSelf()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::PrintSelf | ( | std::ostream & | os,
|  | Indent | indent ) const

override protected

Print contents of a AdvancedVersorTransform

## SetIdentity()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::SetIdentity | ( |  | ) |

override virtual

Set the parameters to the IdentityTransform

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< double, 3, 3 >.

## SetParameters()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::SetParameters | ( | const ParametersType & | parameters | ) |

override

Set the transformation from a container of parameters This is typically used by optimizers.

There are 3 parameters. They represent the components of the right part of the versor. This can be seen as the components of the vector parallel to the rotation axis and multiplied by std::sin( angle / 2 ).

## SetRotation() [1/2]

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::SetRotation | ( | const AxisType & | axis,
|  | AngleType | angle )

## SetRotation() [2/2]

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::SetRotation | ( | const VersorType & | versor | ) |

Set the rotational part of the transform

## SetVarVersor()

template<class TScalarType = double>

void itk::AdvancedVersorTransform< TScalarType >::SetVarVersor | ( | const VersorType & | newVersor | ) |

inline protected

Definition at line 163 of file itkAdvancedVersorTransform.h.

## Field Documentation

## m_Versor

template<class TScalarType = double>

VersorType itk::AdvancedVersorTransform< TScalarType >::m_Versor {}

private

Versor containing the rotation

Definition at line 189 of file itkAdvancedVersorTransform.h.

Generated on 1768596610 for elastix by 1.15.0 |