go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions > Class Template Reference

#include <itkAdvancedMatrixOffsetTransformBase.h>

Detailed Description

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

Matrix and Offset transformation of a vector space (e.g. space coordinates)

This class serves as a base class for transforms that can be expressed as a linear transformation plus a constant offset (e.g., affine, similarity and rigid transforms). This base class also provides the concept of using a center of rotation and a translation instead of an offset.

As derived instances of this class are specializations of an affine transform, any two of these transformations may be composed and the result is an affine transformation. However, the order is important. Given two affine transformations T1 and T2, we will say that "precomposing T1 with T2" yields the transformation which applies T1 to the source, and then applies T2 to that result to obtain the target. Conversely, we will say that "postcomposing T1 with T2" yields the transformation which applies T2 to the source, and then applies T1 to that result to obtain the target. (Whether T1 or T2 comes first lexicographically depends on whether you choose to write mappings from right-to-left or vice versa; we avoid the whole problem by referring to the order of application rather than the textual order.)

There are three template parameters for this class:

ScalarT The type to be used for scalar numeric values. Either float or double.

NInputDimensions The number of dimensions of the input vector space.

NOutputDimensions The number of dimensions of the output vector space.

This class provides several methods for setting the matrix and offset defining the transform. To support the registration framework, the transform parameters can also be set as an Array<double> of size (NInputDimension + 1) * NOutputDimension using method SetParameters(). The first (NOutputDimension x NInputDimension) parameters defines the matrix in row-major order (where the column index varies the fastest). The last NOutputDimension parameters defines the translation in each dimensions.

Definition at line 95 of file itkAdvancedMatrixOffsetTransformBase.h.

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

Public Types

using CenterType = InputPointType
 
using ConstPointer = SmartPointer< const Self >
 
using InverseMatrixType = Matrix< TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension >
 
using MatrixType = Matrix< TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OffsetType = OutputVectorType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedMatrixOffsetTransformBase
 
using Superclass = AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TranslationType = OutputVectorType
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
using ConstPointer = SmartPointer< const Self >
 
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
 
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
 
using MovingImageGradientType = OutputCovariantVectorType
 
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
 
using NonZeroJacobianIndicesType = std::vector< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedTransform
 
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
 
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
 
using Superclass = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformType = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 

Public Member Functions

const InputPointType & GetCenter () const
 
virtual const char * GetClassName () const
 
const FixedParametersType & GetFixedParameters () const override
 
void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, 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
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 
 itkStaticConstMacro (ParametersDimension, unsigned int, NOutputDimensions *(NInputDimensions+1))
 
void SetCenter (const InputPointType &center)
 
void SetFixedParameters (const FixedParametersType &) override
 
virtual void SetIdentity ()
 
virtual void SetMatrix (const MatrixType &matrix)
 
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
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const override
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
virtual void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const =0
 
virtual void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const =0
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 AdvancedMatrixOffsetTransformBase (const unsigned int paramDims=ParametersDimension)
 
virtual void ComputeMatrix ()
 
virtual void ComputeMatrixParameters ()
 
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< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 

Protected Attributes

JacobianOfSpatialHessianType m_JacobianOfSpatialHessian
 
JacobianOfSpatialJacobianType m_JacobianOfSpatialJacobian
 
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
 
SpatialHessianType m_SpatialHessian
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian { true }
 
bool m_HasNonZeroSpatialHessian { true }
 

Private Member Functions

 AdvancedMatrixOffsetTransformBase (const Self &other)
 
const InverseMatrixTypeGetInverseMatrix () const
 
const Selfoperator= (const Self &)
 
void PrecomputeJacobians (unsigned int paramDims)
 

Private Attributes

InputPointType m_Center {}
 
InverseMatrixType m_InverseMatrix { InverseMatrixType::GetIdentity() }
 
TimeStamp m_InverseMatrixMTime
 
MatrixType m_Matrix { MatrixType::GetIdentity() }
 
TimeStamp m_MatrixMTime
 
OutputVectorType m_Offset {}
 
bool m_Singular { false }
 
OutputVectorType m_Translation {}
 

Member Typedef Documentation

◆ CenterType

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::CenterType = InputPointType

Typedefs.

Definition at line 147 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ ConstPointer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer = SmartPointer<const Self>

Definition at line 103 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ InverseMatrixType

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixType = Matrix<TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension>

Standard inverse matrix type for this class.

Definition at line 144 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ MatrixType

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixType = Matrix<TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension>

Standard matrix type for this class.

Definition at line 141 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ OffsetType

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OffsetType = OutputVectorType

Definition at line 148 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ Pointer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Pointer = SmartPointer<Self>

Definition at line 102 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ Self

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Self = AdvancedMatrixOffsetTransformBase

Standard typedefs

Definition at line 100 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ Superclass

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Superclass = AdvancedTransform<TScalarType, NInputDimensions, NOutputDimensions>

Definition at line 101 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ TranslationType

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TranslationType = OutputVectorType

Definition at line 149 of file itkAdvancedMatrixOffsetTransformBase.h.

Constructor & Destructor Documentation

◆ AdvancedMatrixOffsetTransformBase() [1/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( const unsigned int  paramDims = ParametersDimension)
explicitprotected

Construct an AdvancedMatrixOffsetTransformBase object

This method constructs a new AdvancedMatrixOffsetTransformBase object and initializes the matrix and offset parts of the transformation to values specified by the caller. If the arguments are omitted, then the AdvancedMatrixOffsetTransformBase is initialized to an identity transformation in the appropriate number of dimensions.

◆ ~AdvancedMatrixOffsetTransformBase()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::~AdvancedMatrixOffsetTransformBase ( )
overrideprotecteddefault

◆ AdvancedMatrixOffsetTransformBase() [2/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( const Self other)
private

Member Function Documentation

◆ ComputeMatrix()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeMatrix ( )
protectedvirtual

◆ ComputeMatrixParameters()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeMatrixParameters ( )
protectedvirtual

◆ ComputeOffset()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeOffset ( )
protectedvirtual

◆ ComputeTranslation()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeTranslation ( )
protected

◆ GetCenter()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InputPointType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetCenter ( ) const
inline

Get center of rotation of the AdvancedMatrixOffsetTransformBase

This method returns the point used as the fixed center of rotation for the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 234 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ GetClassName()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const char * itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetClassName ( ) const
virtual

◆ GetFixedParameters()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const FixedParametersType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetFixedParameters ( ) const
override

Get the Fixed Parameters.

◆ GetInverseMatrix()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InverseMatrixType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetInverseMatrix ( ) const
private

◆ GetJacobian()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType  
) const
overridevirtual

◆ GetJacobianOfSpatialHessian() [1/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType &  ,
JacobianOfSpatialHessianType ,
NonZeroJacobianIndicesType  
) const
overridevirtual

Compute the Jacobian of the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialHessian() [2/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialJacobian() [1/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType &  ,
JacobianOfSpatialJacobianType ,
NonZeroJacobianIndicesType  
) const
overridevirtual

Compute the Jacobian of the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialJacobian() [2/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType &  ,
SpatialJacobianType ,
JacobianOfSpatialJacobianType ,
NonZeroJacobianIndicesType  
) const
overridevirtual

Compute the Jacobian of the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetMatrix()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const MatrixType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetMatrix ( ) const
inline

Get matrix of an AdvancedMatrixOffsetTransformBase

This method returns the value of the matrix of the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 188 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ GetOffset()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const OutputVectorType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetOffset ( ) const
inlineprotected

Get offset of an AdvancedMatrixOffsetTransformBase

This method returns the offset value of the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 421 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ GetParameters()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ParametersType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetParameters ( ) const
override

Get the Transformation Parameters.

◆ GetSpatialHessian()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialHessian ( const InputPointType &  ,
SpatialHessianType  
) const
overridevirtual

Compute the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetSpatialJacobian()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialJacobian ( const InputPointType &  ,
SpatialJacobianType  
) const
overridevirtual

Compute the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetTransformCategory()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TransformCategoryEnum itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetTransformCategory ( ) const
inlineoverride

Indicates the category transform. e.g. an affine transform, or a local one, e.g. a deformation field.

Definition at line 326 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ GetTranslation()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const OutputVectorType & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetTranslation ( ) const
inline

Get translation component of the AdvancedMatrixOffsetTransformBase

This method returns the translation used after rotation about the center point. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 264 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ IsLinear()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::IsLinear ( ) const
inlineoverride

Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then

      T( a*P + b*Q ) = a * T(P) + b * T(Q)

Definition at line 316 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ itkStaticConstMacro() [1/3]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( InputSpaceDimension  ,
unsigned int  ,
NInputDimensions   
)

Dimension of the domain space.

◆ itkStaticConstMacro() [2/3]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned int  ,
NOutputDimensions   
)

◆ itkStaticConstMacro() [3/3]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( ParametersDimension  ,
unsigned int  ,
NOutputDimensions *  NInputDimensions+1 
)

◆ New()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
static Pointer itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::New ( )
static

New macro for creation of through a Smart Pointer.

◆ operator=()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const Self & itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::operator= ( const Self )
private

◆ PrecomputeJacobians()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::PrecomputeJacobians ( unsigned int  paramDims)
private

Called by constructors:

◆ PrintSelf()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::PrintSelf ( std::ostream &  s,
Indent  indent 
) const
overrideprotected

Print contents of an AdvancedMatrixOffsetTransformBase.

◆ SetCenter()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetCenter ( const InputPointType &  center)
inline

Set center of rotation of an AdvancedMatrixOffsetTransformBase

This method sets the center of rotation of an AdvancedMatrixOffsetTransformBase to a fixed point - for most transforms derived from this class, this point is not a "parameter" of the transform - the exception is that "centered" transforms have center as a parameter during optimization.

This method updates offset wrt to current translation and matrix. That is, changing the center changes the transform!

WARNING: When using the Center, we strongly recommend only changing the matrix and translation to define a transform. Changing a transform's center, changes the mapping between spaces - specifically, translation is not changed with respect to that new center, and so the offset is updated to * maintain the consistency with translation. If a center is not used, or is set before the matrix and the offset, then it is safe to change the offset directly. As a rule of thumb, if you wish to set the center explicitly, set before Offset computations are done.

To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 218 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ SetFixedParameters()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetFixedParameters ( const FixedParametersType &  )
override

Set the fixed parameters and update internal transformation.

◆ SetIdentity()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetIdentity ( )
virtual

◆ SetMatrix()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetMatrix ( const MatrixType matrix)
inlinevirtual

Set matrix of an AdvancedMatrixOffsetTransformBase

This method sets the matrix of an AdvancedMatrixOffsetTransformBase to a value specified by the user.

This updates the Offset wrt to current translation and center. See the warning regarding offset-versus-translation in the documentation for SetCenter.

To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

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

Definition at line 170 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ SetParameters()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetParameters ( const ParametersType &  parameters)
override

Set the transformation from a container of parameters. The first (NOutputDimension x NInputDimension) parameters define the matrix and the last NOutputDimension parameters the translation. Offset is updated based on current center.

◆ SetTranslation()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetTranslation ( const OutputVectorType &  translation)
inline

Set translation of an AdvancedMatrixOffsetTransformBase

This method sets the translation of an AdvancedMatrixOffsetTransformBase. This updates Offset to reflect current translation. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 248 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ SetVarMatrix()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarMatrix ( const MatrixType matrix)
inlineprotected

Definition at line 396 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ SetVarTranslation()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarTranslation ( const OutputVectorType &  translation)
inlineprotected

Definition at line 406 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ TransformCovariantVector()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputCovariantVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputCovariantVectorType &  vector) const
override

◆ TransformPoint()

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformPoint ( const InputPointType &  point) const
override

Transform by an affine transformation

This method applies the affine transform given by self to a given point or vector, returning the transformed point or vector. The TransformPoint method transforms its argument as an affine point, whereas the TransformVector method transforms its argument as a vector.

◆ TransformVector() [1/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorType &  vector) const
override

◆ TransformVector() [2/2]

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVnlVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVnlVectorType &  vector) const
override

Field Documentation

◆ m_Center

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Center {}
private

Definition at line 453 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_InverseMatrix

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InverseMatrixType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrix { InverseMatrixType::GetIdentity() }
mutableprivate

Definition at line 450 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_InverseMatrixMTime

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrixMTime
mutableprivate

Definition at line 458 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_JacobianOfSpatialHessian

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
JacobianOfSpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_JacobianOfSpatialHessian
protected

Definition at line 432 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_JacobianOfSpatialJacobian

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
JacobianOfSpatialJacobianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_JacobianOfSpatialJacobian
protected

Definition at line 431 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_Matrix

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
MatrixType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Matrix { MatrixType::GetIdentity() }
private

Member variables.

Definition at line 448 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_MatrixMTime

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_MatrixMTime
private

To avoid recomputation of the inverse if not needed.

Definition at line 457 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_NonZeroJacobianIndices

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
NonZeroJacobianIndicesType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_NonZeroJacobianIndices
protected

(spatial) Jacobians and Hessians can mostly be precomputed by this transform. Store them in these member variables. SpatialJacobian is simply m_Matrix

Definition at line 429 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_Offset

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Offset {}
private

Definition at line 449 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_Singular

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Singular { false }
mutableprivate

Definition at line 451 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_SpatialHessian

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
SpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_SpatialHessian
protected

Definition at line 430 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ m_Translation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Translation {}
private

Definition at line 454 of file itkAdvancedMatrixOffsetTransformBase.h.



Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo