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

`#include <itkAdvancedRigid2DTransform.h>`

## Detailed Description

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

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

This transform applies a rigid transformation in 2D space. The transform is specified as a rotation around a arbitrary center and is followed by a translation.

The parameters for this transform can be set either using individual Set methods or in serialized form using SetParameters() and SetFixedParameters().

The serialization of the optimizable parameters is an array of 3 elements ordered as follows: p[0] = angle p[1] = x component of the translation p[2] = y component of the translation

The serialization of the fixed parameters is an array of 2 elements ordered as follows: p[0] = x coordinate of the center p[1] = y coordinate of the center

Access methods for the center, translation and underlying matrix offset vectors are documented in the superclass AdvancedMatrixOffsetTransformBase.

See also
  Transform
  AdvancedMatrixOffsetTransformBase

Definition at line 75 of file itkAdvancedRigid2DTransform.h.

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

## Public Types

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 = AdvancedRigid2DTransform
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > | SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > | SpatialJacobianType
using | Superclass = AdvancedMatrixOffsetTransformBase<TScalarType, 2, 2>
Public Types inherited from itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
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 TScalarType & | GetAngle ()
virtual const char * | GetClassName () const
void | GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
const ParametersType & | GetParameters () const override
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedRigid2DTransform)
| itkStaticConstMacro (InputSpaceDimension, unsigned int, 2)
| itkStaticConstMacro (OutputSpaceDimension, unsigned int, 2)
| itkStaticConstMacro (ParametersDimension, unsigned int, 3)
void | SetAngle (TScalarType angle)
void | SetIdentity () override
void | SetMatrix (const MatrixType &matrix) override
void | SetParameters (const ParametersType &parameters) override
Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
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::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
static Pointer | New ()

## Protected Member Functions

| AdvancedRigid2DTransform ()
| AdvancedRigid2DTransform (unsigned int parametersDimension)
void | ComputeMatrix () override
void | ComputeMatrixParameters () override
virtual void | PrecomputeJacobianOfSpatialJacobian ()
void | PrintSelf (std::ostream &os, Indent indent) const override
void | SetVarAngle (TScalarType angle)
| ~AdvancedRigid2DTransform () override=default
Protected Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
| 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 Attributes

TScalarType | m_Angle {}

## Additional Inherited Members

Protected Attributes inherited from itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
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

## ConstPointer

template<class TScalarType = double>

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

Definition at line 85 of file itkAdvancedRigid2DTransform.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::AdvancedRigid2DTransform< TScalarType >::Pointer = SmartPointer<Self>

Definition at line 84 of file itkAdvancedRigid2DTransform.h.

## Self

template<class TScalarType = double>

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

Standard class typedefs.

Definition at line 82 of file itkAdvancedRigid2DTransform.h.

## SpatialHessianType

template<class TScalarType = double>

## SpatialJacobianType

template<class TScalarType = double>

## Superclass

template<class TScalarType = double>

using itk::AdvancedRigid2DTransform< TScalarType >::Superclass = AdvancedMatrixOffsetTransformBase<TScalarType, 2, 2>

Definition at line 83 of file itkAdvancedRigid2DTransform.h.

## Constructor & Destructor Documentation

## AdvancedRigid2DTransform() [1/2]

template<class TScalarType = double>

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

protected

## AdvancedRigid2DTransform() [2/2]

template<class TScalarType = double>

itk::AdvancedRigid2DTransform< TScalarType >::AdvancedRigid2DTransform | ( | unsigned int | parametersDimension | ) |

explicit protected

## ~AdvancedRigid2DTransform()

template<class TScalarType = double>

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

override protected default

## Member Function Documentation

## ComputeMatrix()

template<class TScalarType = double>

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

override protected virtual

Compute the matrix from angle. This is used in Set methods to update the underlying matrix whenever a transform parameter is changed. Also update the m_JacobianOfSpatialJacobian.

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## ComputeMatrixParameters()

template<class TScalarType = double>

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

override protected virtual

Compute the angle from the matrix. This is used to compute transform parameters from a given matrix. This is used in AdvancedMatrixOffsetTransformBase::Compose() and AdvancedMatrixOffsetTransformBase::GetInverse().

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## GetAngle()

template<class TScalarType = double>

virtual const TScalarType & itk::AdvancedRigid2DTransform< TScalarType >::GetAngle | ( |  | ) |

virtual

## GetClassName()

template<class TScalarType = double>

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

virtual

Run-time type information (and related methods).

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< float >, itk::GPUAdvancedEuler2DTransform< TScalarType, TParentTransform >, and itk::GPUAdvancedSimilarity2DTransform< TScalarType, TParentTransform >.

## GetJacobian()

template<class TScalarType = double>

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

override virtual

This method computes the Jacobian matrix of the transformation at a given input point.

See also
  Transform::GetJacobian()

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## GetParameters()

template<class TScalarType = double>

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

override

Get the parameters that uniquely define the transform This is typically used by optimizers. There are 3 parameters. The first one represents the angle or rotation in radians and the last two represents the translation. The center of rotation is fixed.

See also
  Transform::GetParameters()
  Transform::GetFixedParameters()

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TScalarType = double>

itk::AdvancedRigid2DTransform< TScalarType >::ITK_DISALLOW_COPY_AND_MOVE | ( | AdvancedRigid2DTransform< TScalarType > |  | ) |

## itkStaticConstMacro() [1/3]

template<class TScalarType = double>

itk::AdvancedRigid2DTransform< TScalarType >::itkStaticConstMacro | ( | InputSpaceDimension | ,
|  | unsigned int | ,
|  | 2 | )

Dimension of the space.

## itkStaticConstMacro() [2/3]

template<class TScalarType = double>

itk::AdvancedRigid2DTransform< TScalarType >::itkStaticConstMacro | ( | OutputSpaceDimension | ,
|  | unsigned int | ,
|  | 2 | )

## itkStaticConstMacro() [3/3]

template<class TScalarType = double>

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

## New()

template<class TScalarType = double>

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

static

New macro for creation of through a Smart Pointer

## PrecomputeJacobianOfSpatialJacobian()

template<class TScalarType = double>

virtual void itk::AdvancedRigid2DTransform< TScalarType >::PrecomputeJacobianOfSpatialJacobian | ( |  | ) |

protected virtual

Update the m_JacobianOfSpatialJacobian.

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## PrintSelf()

template<class TScalarType = double>

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

override protected

Print contents of an AdvancedRigid2DTransform

## SetAngle()

template<class TScalarType = double>

void itk::AdvancedRigid2DTransform< TScalarType >::SetAngle | ( | TScalarType | angle | ) |

Set/Get the angle of rotation in radians

## SetIdentity()

template<class TScalarType = double>

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

override virtual

Reset the parameters to create and identity transform.

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## SetMatrix()

template<class TScalarType = double>

void itk::AdvancedRigid2DTransform< TScalarType >::SetMatrix | ( | const MatrixType & | matrix | ) |

override virtual

Set the rotation Matrix of a Rigid2D Transform

This method sets the 2x2 matrix representing the rotation in the transform. The Matrix is expected to be orthogonal with a certain tolerance.

Warning
  This method will throw an exception is the matrix provided as argument is not orthogonal.

See also
  AdvancedMatrixOffsetTransformBase::SetMatrix()

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

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, and itk::AdvancedSimilarity2DTransform< float >.

## SetParameters()

template<class TScalarType = double>

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

override

Set the transformation from a container of parameters This is typically used by optimizers. There are 3 parameters. The first one represents the angle of rotation in radians and the last two represents the translation. The center of rotation is fixed.

See also
  Transform::SetParameters()
  Transform::SetFixedParameters()

## SetVarAngle()

template<class TScalarType = double>

void itk::AdvancedRigid2DTransform< TScalarType >::SetVarAngle | ( | TScalarType | angle | ) |

inline protected

Update angle without recomputation of other internal variables.

Definition at line 218 of file itkAdvancedRigid2DTransform.h.

## Field Documentation

## m_Angle

template<class TScalarType = double>

TScalarType itk::AdvancedRigid2DTransform< TScalarType >::m_Angle {}

private

Definition at line 228 of file itkAdvancedRigid2DTransform.h.

Generated on 1768596610 for elastix by 1.15.0 |