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::AdvancedSimilarity2DTransform< TScalarType > Class Template Reference

#include <itkAdvancedSimilarity2DTransform.h>

Detailed Description

template<typename TScalarType = double>
class itk::AdvancedSimilarity2DTransform< TScalarType >

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

This transform applies a homogenous scale and rigid transform in 2D space. The transform is specified as a scale and rotation around a arbitrary center and is followed by a translation. given one angle for rotation, a homogeneous scale and a 2D offset for 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] = scale p[1] = angle p[2] = x component of the translation p[3] = 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 MatrixOffsetTransformBase.

Access methods for the angle are documented in superclass Rigid2DTransform.

See also
Transform
MatrixOffsetTransformBase
Rigid2DTransform

Definition at line 78 of file itkAdvancedSimilarity2DTransform.h.

Inheritance diagram for itk::AdvancedSimilarity2DTransform< TScalarType >:

Public Types

using ConstPointer = SmartPointer<const Self>
typedef typename SpatialJacobianType::InternalMatrixType InternalMatrixType
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
typedef std::vector< uint64_t > NonZeroJacobianIndicesType
using Pointer = SmartPointer<Self>
using ScaleType = TScalarType
using Self = AdvancedSimilarity2DTransform
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
using Superclass = AdvancedRigid2DTransform<TScalarType>
Public Types inherited from itk::AdvancedRigid2DTransform< double >
using ConstPointer
typedef typename SpatialJacobianType::InternalMatrixType InternalMatrixType
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
typedef std::vector< uint64_t > 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, 2, 2 >
using CenterType
using ConstPointer
typedef typename SpatialJacobianType::InternalMatrixType InternalMatrixType
using InverseMatrixType
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
using MatrixType
typedef std::vector< uint64_t > 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

void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
const ParametersType & GetParameters () const override
virtual const ScaleTypeGetScale ()
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedSimilarity2DTransform)
 itkOverrideGetNameOfClassMacro (AdvancedSimilarity2DTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, 2)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, 2)
 itkStaticConstMacro (ParametersDimension, unsigned int, 4)
 itkStaticConstMacro (SpaceDimension, unsigned int, 2)
void SetIdentity () override
void SetMatrix (const MatrixType &matrix) override
void SetParameters (const ParametersType &parameters) override
void SetScale (ScaleType scale)
Public Member Functions inherited from itk::AdvancedRigid2DTransform< double >
virtual const doubleGetAngle ()
const ParametersType & GetParameters () const override
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedRigid2DTransform)
 itkOverrideGetNameOfClassMacro (AdvancedRigid2DTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, 2)
void SetAngle (double angle)
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 MatrixTypeGetMatrix () 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
 itkOverrideGetNameOfClassMacro (AdvancedMatrixOffsetTransformBase)
 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)
 itkOverrideGetNameOfClassMacro (AdvancedTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)

Static Public Member Functions

static Pointer New ()
Static Public Member Functions inherited from itk::AdvancedRigid2DTransform< double >
static Pointer New ()
Static Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< double, 2, 2 >
static Pointer New ()

Protected Member Functions

 AdvancedSimilarity2DTransform ()
void ComputeMatrix () override
void ComputeMatrixParameters () override
void PrecomputeJacobianOfSpatialJacobian () override
void PrintSelf (std::ostream &os, Indent indent) const override
void SetVarScale (ScaleType scale)
 ~AdvancedSimilarity2DTransform () override=default
Protected Member Functions inherited from itk::AdvancedRigid2DTransform< double >
 AdvancedRigid2DTransform ()
void PrintSelf (std::ostream &os, Indent indent) const override
void SetVarAngle (double 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

ScaleType m_Scale {}

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<typename TScalarType = double>
using itk::AdvancedSimilarity2DTransform< TScalarType >::ConstPointer = SmartPointer<const Self>

Definition at line 87 of file itkAdvancedSimilarity2DTransform.h.

◆ InternalMatrixType

template<typename TScalarType = double>

◆ JacobianOfSpatialHessianType

template<typename TScalarType = double>

◆ JacobianOfSpatialJacobianType

template<typename TScalarType = double>

◆ NonZeroJacobianIndicesType

template<typename 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<typename TScalarType = double>
using itk::AdvancedSimilarity2DTransform< TScalarType >::Pointer = SmartPointer<Self>

Definition at line 86 of file itkAdvancedSimilarity2DTransform.h.

◆ ScaleType

template<typename TScalarType = double>
using itk::AdvancedSimilarity2DTransform< TScalarType >::ScaleType = TScalarType

Definition at line 103 of file itkAdvancedSimilarity2DTransform.h.

◆ Self

Standard class typedefs.

Definition at line 84 of file itkAdvancedSimilarity2DTransform.h.

◆ SpatialHessianType

template<typename TScalarType = double>

◆ SpatialJacobianType

template<typename TScalarType = double>

◆ Superclass

Definition at line 85 of file itkAdvancedSimilarity2DTransform.h.

Constructor & Destructor Documentation

◆ AdvancedSimilarity2DTransform()

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::AdvancedSimilarity2DTransform ( )
protected

◆ ~AdvancedSimilarity2DTransform()

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::~AdvancedSimilarity2DTransform ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeMatrix()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::ComputeMatrix ( )
overrideprotectedvirtual

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

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ ComputeMatrixParameters()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::ComputeMatrixParameters ( )
overrideprotectedvirtual

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

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ GetJacobian()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::GetJacobian ( const InputPointType & ,
JacobianType & ,
NonZeroJacobianIndicesType &  ) const
overridevirtual

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

See also
Transform::GetJacobian() Compute the Jacobian of the transformation.

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ GetParameters()

template<typename TScalarType = double>
const ParametersType & itk::AdvancedSimilarity2DTransform< TScalarType >::GetParameters ( ) const
override

Get the parameters that uniquely define the transform This is typically used by optimizers. There are 4 parameters. The first one represents the scale, the second represents the angle of rotation, and the last two represent the translation. The center of rotation is fixed.

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

◆ GetScale()

template<typename TScalarType = double>
virtual const ScaleType & itk::AdvancedSimilarity2DTransform< TScalarType >::GetScale ( )
virtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::ITK_DISALLOW_COPY_AND_MOVE ( AdvancedSimilarity2DTransform< TScalarType > )

◆ itkOverrideGetNameOfClassMacro()

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::itkOverrideGetNameOfClassMacro ( AdvancedSimilarity2DTransform< TScalarType > )

Run-time type information (and related methods).

◆ itkStaticConstMacro() [1/4]

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::itkStaticConstMacro ( InputSpaceDimension ,
unsigned int ,
2  )

◆ itkStaticConstMacro() [2/4]

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::itkStaticConstMacro ( OutputSpaceDimension ,
unsigned int ,
2  )

◆ itkStaticConstMacro() [3/4]

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::itkStaticConstMacro ( ParametersDimension ,
unsigned int ,
4  )

◆ itkStaticConstMacro() [4/4]

template<typename TScalarType = double>
itk::AdvancedSimilarity2DTransform< TScalarType >::itkStaticConstMacro ( SpaceDimension ,
unsigned int ,
2  )

Dimension of parameters.

◆ New()

template<typename TScalarType = double>
Pointer itk::AdvancedSimilarity2DTransform< TScalarType >::New ( )
static

New macro for creation of through a Smart Pointer.

◆ PrecomputeJacobianOfSpatialJacobian()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::PrecomputeJacobianOfSpatialJacobian ( )
overrideprotectedvirtual

Update the m_JacobianOfSpatialJacobian.

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ PrintSelf()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::PrintSelf ( std::ostream & os,
Indent indent ) const
overrideprotected

◆ SetIdentity()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::SetIdentity ( )
overridevirtual

Set the transformation to an identity.

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ SetMatrix()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::SetMatrix ( const MatrixType & matrix)
overridevirtual

Set the rotation Matrix of a Similarity 2D Transform

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

Warning
This method will throw an exception if the matrix provided as argument is not valid.
See also
MatrixOffsetTransformBase::SetMatrix()

Reimplemented from itk::AdvancedRigid2DTransform< double >.

◆ SetParameters()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::SetParameters ( const ParametersType & parameters)
override

Set the transformation from a container of parameters This is typically used by optimizers. There are 4 parameters. The first one represents the scale, the second represents the angle of rotation and the last two represent the translation. The center of rotation is fixed.

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

◆ SetScale()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::SetScale ( ScaleType scale)

Set the Scale part of the transform.

◆ SetVarScale()

template<typename TScalarType = double>
void itk::AdvancedSimilarity2DTransform< TScalarType >::SetVarScale ( ScaleType scale)
inlineprotected

Set the scale without updating underlying variables.

Definition at line 221 of file itkAdvancedSimilarity2DTransform.h.

Member Data Documentation

◆ m_Scale

template<typename TScalarType = double>
ScaleType itk::AdvancedSimilarity2DTransform< TScalarType >::m_Scale {}
private

Definition at line 231 of file itkAdvancedSimilarity2DTransform.h.



Generated on 1774142652 for elastix by doxygen 1.15.0 elastix logo