ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
itk::IdentityTransform< TParametersValueType, VDimension > Class Template Reference

#include <itkIdentityTransform.h>

Detailed Description

template<typename TParametersValueType, unsigned int VDimension = 3>
class itk::IdentityTransform< TParametersValueType, VDimension >

Implementation of an Identity Transform.

This class defines the generic interface for an Identity Transform.

It will map every point to itself, every vector to itself and every covariant vector to itself.

This class is intended to be used primarily as a default Transform for initializing those classes supporting a generic Transform.

This class is templated over the Representation type for coordinates (that is the type used for representing the components of points and vectors) and over the dimension of the space. In this case the Input and Output spaces are the same so only one dimension is required.

Examples
Examples/Filtering/ResampleImageFilter6.cxx, Examples/Filtering/ResampleImageFilter9.cxx, Examples/Filtering/ResampleVolumesToBeIsotropic.cxx, Examples/Filtering/SubsampleVolume.cxx, Examples/RegistrationITKv4/DeformableRegistration15.cxx, Examples/RegistrationITKv4/ImageRegistration20.cxx, Examples/RegistrationITKv4/ImageRegistration7.cxx, Examples/RegistrationITKv4/ImageRegistration8.cxx, Examples/RegistrationITKv4/ImageRegistration9.cxx, Examples/RegistrationITKv4/MultiStageImageRegistration1.cxx, Examples/RegistrationITKv4/MultiStageImageRegistration2.cxx, SphinxExamples/src/Filtering/ImageGrid/ResampleAScalarImage/Code.cxx, SphinxExamples/src/Filtering/ImageGrid/ResampleAVectorImage/Code.cxx, SphinxExamples/src/Filtering/ImageGrid/UpsampleAnImage/Code.cxx, SphinxExamples/src/IO/GDCM/ResampleDICOMSeries/Code.cxx, and SphinxExamples/src/Registration/Metricsv4/PerformRegistrationOnVectorImages/Code.cxx.

Definition at line 50 of file itkIdentityTransform.h.

+ Inheritance diagram for itk::IdentityTransform< TParametersValueType, VDimension >:
+ Collaboration diagram for itk::IdentityTransform< TParametersValueType, VDimension >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using InputCovariantVectorType = CovariantVector< TParametersValueType, Self::InputSpaceDimension >
 
using InputPointType = Point< TParametersValueType, Self::InputSpaceDimension >
 
using InputVectorType = Vector< TParametersValueType, Self::InputSpaceDimension >
 
using InputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::InputSpaceDimension >
 
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using OutputCovariantVectorType = CovariantVector< TParametersValueType, Self::OutputSpaceDimension >
 
using OutputPointType = Point< TParametersValueType, Self::OutputSpaceDimension >
 
using OutputVectorType = Vector< TParametersValueType, Self::OutputSpaceDimension >
 
using OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::OutputSpaceDimension >
 
using Pointer = SmartPointer< Self >
 
using ScalarType = ParametersValueType
 
using Self = IdentityTransform
 
using Superclass = Transform< TParametersValueType, VDimension, VDimension >
 
- Public Types inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = Array< ParametersValueType >
 
using DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using InputCovariantVectorType = CovariantVector< TParametersValueType, VInputDimension >
 
using InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension >
 
using InputPointType = Point< TParametersValueType, VInputDimension >
 
using InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VInputDimension >
 
using InputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using InputVectorType = Vector< TParametersValueType, VInputDimension >
 
using InputVnlVectorType = vnl_vector_fixed< TParametersValueType, VInputDimension >
 
using InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension >
 
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer
 
using InverseTransformBaseType = Transform< TParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianPositionType = vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianType = Array2D< ParametersValueType >
 
using MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OutputCovariantVectorType = CovariantVector< TParametersValueType, VOutputDimension >
 
using OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension >
 
using OutputPointType = Point< TParametersValueType, VOutputDimension >
 
using OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VOutputDimension >
 
using OutputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using OutputVectorType = Vector< TParametersValueType, VOutputDimension >
 
using OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, VOutputDimension >
 
using Pointer = SmartPointer< Self >
 
using ScalarType = ParametersValueType
 
using Self = Transform
 
using Superclass = TransformBaseTemplate< TParametersValueType >
 

Public Member Functions

const FixedParametersType & GetFixedParameters () const override
 
bool GetInverse (Self *inverseTransform) const
 
InverseTransformBasePointer GetInverseTransform () const override
 
const char * GetNameOfClass () const override
 
const ParametersType & GetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
void SetFixedParameters (const FixedParametersType &) override
 
void SetIdentity ()
 
void SetParameters (const ParametersType &) override
 
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
 
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &jacobian) const override
 
void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &jac) const override
 
- Public Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const
 
void CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override
 
void CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override
 
const FixedParametersType & GetFixedParameters () const override
 
unsigned int GetInputSpaceDimension () const override
 
bool GetInverse (Self *) const
 
const char * GetNameOfClass () const override
 
virtual NumberOfParametersType GetNumberOfFixedParameters () const
 
virtual NumberOfParametersType GetNumberOfLocalParameters () const
 
NumberOfParametersType GetNumberOfParameters () const override
 
unsigned int GetOutputSpaceDimension () const override
 
const ParametersType & GetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
std::string GetTransformTypeAsString () const override
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
void SetParametersByValue (const ParametersType &p) override
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputPointType TransformPoint (const InputPointType &) const=0
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
virtual void UpdateTransformParameters (const DerivativeType &update, ParametersValueType factor=1.0)
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const=0
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const
 
template< typename TImage > std std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > ApplyToImageMetadata (SmartPointer< TImage > image) const
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int InputSpaceDimension = VDimension
 
static constexpr unsigned int OutputSpaceDimension = VDimension
 
- Static Public Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static constexpr unsigned int InputSpaceDimension
 
static constexpr unsigned int OutputSpaceDimension
 

Protected Member Functions

 IdentityTransform ()=default
 
 ~IdentityTransform () override=default
 
- Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
LightObject::Pointer InternalClone () const override
 
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType &, const InverseJacobianPositionType &) const
 
 Transform ()=default
 
 Transform (NumberOfParametersType numberOfParameters)
 
 ~Transform () override=default
 

Additional Inherited Members

- Public Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
InverseJacobianPositionType &jacobian const
 
- Static Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static InverseTransformBasePointer InvertTransform (const TTransform &transform)
 
- Protected Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
FixedParametersType m_FixedParameters
 
ParametersType m_Parameters
 

Member Typedef Documentation

◆ ConstPointer

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 59 of file itkIdentityTransform.h.

◆ InputCovariantVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InputCovariantVectorType = CovariantVector<TParametersValueType, Self::InputSpaceDimension>

Standard covariant vector type for this class

Definition at line 92 of file itkIdentityTransform.h.

◆ InputPointType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InputPointType = Point<TParametersValueType, Self::InputSpaceDimension>

Standard coordinate point type for this class

Definition at line 100 of file itkIdentityTransform.h.

◆ InputVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InputVectorType = Vector<TParametersValueType, Self::InputSpaceDimension>

Standard vector type for this class.

Definition at line 88 of file itkIdentityTransform.h.

◆ InputVnlVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InputVnlVectorType = vnl_vector_fixed<TParametersValueType, Self::InputSpaceDimension>

Standard vnl_vector type for this class.

Definition at line 96 of file itkIdentityTransform.h.

◆ InverseTransformBasePointer

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InverseTransformBasePointer = typename InverseTransformBaseType::Pointer

Definition at line 106 of file itkIdentityTransform.h.

◆ InverseTransformBaseType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::InverseTransformBaseType = typename Superclass::InverseTransformBaseType

Base inverse transform type. This type should not be changed to the concrete inverse transform type or inheritance would be lost.

Definition at line 105 of file itkIdentityTransform.h.

◆ OutputCovariantVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::OutputCovariantVectorType = CovariantVector<TParametersValueType, Self::OutputSpaceDimension>

Definition at line 93 of file itkIdentityTransform.h.

◆ OutputPointType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::OutputPointType = Point<TParametersValueType, Self::OutputSpaceDimension>

Definition at line 101 of file itkIdentityTransform.h.

◆ OutputVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::OutputVectorType = Vector<TParametersValueType, Self::OutputSpaceDimension>

Definition at line 89 of file itkIdentityTransform.h.

◆ OutputVnlVectorType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::OutputVnlVectorType = vnl_vector_fixed<TParametersValueType, Self::OutputSpaceDimension>

Definition at line 97 of file itkIdentityTransform.h.

◆ Pointer

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::Pointer = SmartPointer<Self>

Definition at line 58 of file itkIdentityTransform.h.

◆ ScalarType

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::ScalarType = ParametersValueType

Definition at line 76 of file itkIdentityTransform.h.

◆ Self

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::Self = IdentityTransform

Standard class type aliases.

Definition at line 56 of file itkIdentityTransform.h.

◆ Superclass

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::IdentityTransform< TParametersValueType, VDimension >::Superclass = Transform<TParametersValueType, VDimension, VDimension>

Definition at line 57 of file itkIdentityTransform.h.

Constructor & Destructor Documentation

◆ IdentityTransform()

template<typename TParametersValueType , unsigned int VDimension = 3>
itk::IdentityTransform< TParametersValueType, VDimension >::IdentityTransform ( )
protecteddefault

◆ ~IdentityTransform()

template<typename TParametersValueType , unsigned int VDimension = 3>
itk::IdentityTransform< TParametersValueType, VDimension >::~IdentityTransform ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeJacobianWithRespectToParameters()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::IdentityTransform< TParametersValueType, VDimension >::ComputeJacobianWithRespectToParameters ( const InputPointType ,
JacobianType jacobian 
) const
inlineoverride

Compute the Jacobian of the transformation

This method computes the Jacobian matrix of the transformation.
given point or vector, returning the transformed point or
vector. The rank of the Jacobian will also indicate if the transform
is invertible at this point.

The Jacobian can be expressed as a set of partial derivatives of the
output point components with respect to the parameters that defined
the transform:

\f[

 J=\left[ \begin{array}{cccc}
 \frac{\partial x_{1}}{\partial p_{1}} &
 \frac{\partial x_{2}}{\partial p_{1}} &
 \cdots  & \frac{\partial x_{n}}{\partial p_{1}}\\
 \frac{\partial x_{1}}{\partial p_{2}} &
 \frac{\partial x_{2}}{\partial p_{2}} &
 \cdots  & \frac{\partial x_{n}}{\partial p_{2}}\\
 \vdots  & \vdots  & \ddots  & \vdots \\
 \frac{\partial x_{1}}{\partial p_{m}} &
 \frac{\partial x_{2}}{\partial p_{m}} &
 \cdots  & \frac{\partial x_{n}}{\partial p_{m}}
 \end{array}\right]

\f]

Definition at line 175 of file itkIdentityTransform.h.

References itk::Array2D< TValue >::SetSize().

◆ ComputeJacobianWithRespectToPosition()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::IdentityTransform< TParametersValueType, VDimension >::ComputeJacobianWithRespectToPosition ( const InputPointType ,
JacobianPositionType jac 
) const
inlineoverride

Get the jacobian with respect to position, which simply is an identity jacobian because the transform is position-invariant. jac will be resized as needed, but it will be more efficient if it is already properly sized.

Definition at line 187 of file itkIdentityTransform.h.

◆ GetFixedParameters()

template<typename TParametersValueType , unsigned int VDimension = 3>
const FixedParametersType& itk::IdentityTransform< TParametersValueType, VDimension >::GetFixedParameters ( ) const
inlineoverride

Get the Fixed Parameters.

Definition at line 222 of file itkIdentityTransform.h.

◆ GetInverse()

template<typename TParametersValueType , unsigned int VDimension = 3>
bool itk::IdentityTransform< TParametersValueType, VDimension >::GetInverse ( Self inverseTransform) const
inline

Definition at line 196 of file itkIdentityTransform.h.

◆ GetInverseTransform()

template<typename TParametersValueType , unsigned int VDimension = 3>
InverseTransformBasePointer itk::IdentityTransform< TParametersValueType, VDimension >::GetInverseTransform ( ) const
inlineoverridevirtual

Return an inverse of the identity transform - another identity transform.

Reimplemented from itk::Transform< TParametersValueType, VDimension, VDimension >.

Definition at line 204 of file itkIdentityTransform.h.

References New().

◆ GetNameOfClass()

template<typename TParametersValueType , unsigned int VDimension = 3>
const char* itk::IdentityTransform< TParametersValueType, VDimension >::GetNameOfClass ( ) const
override

◆ GetParameters()

template<typename TParametersValueType , unsigned int VDimension = 3>
const ParametersType& itk::IdentityTransform< TParametersValueType, VDimension >::GetParameters ( ) const
inlineoverride

Get the Parameters.

Definition at line 234 of file itkIdentityTransform.h.

◆ GetTransformCategory()

template<typename TParametersValueType , unsigned int VDimension = 3>
TransformCategoryEnum itk::IdentityTransform< TParametersValueType, VDimension >::GetTransformCategory ( ) 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 215 of file itkIdentityTransform.h.

◆ New()

template<typename TParametersValueType , unsigned int VDimension = 3>
static Pointer itk::IdentityTransform< TParametersValueType, VDimension >::New ( )
static

◆ SetFixedParameters()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::IdentityTransform< TParametersValueType, VDimension >::SetFixedParameters ( const FixedParametersType &  )
inlineoverridevirtual

Set the fixed parameters and update internal transformation.

Implements itk::Transform< TParametersValueType, VDimension, VDimension >.

Definition at line 229 of file itkIdentityTransform.h.

◆ SetIdentity()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::IdentityTransform< TParametersValueType, VDimension >::SetIdentity ( )
inline

Set the transformation to an Identity

This is a nullptr operation in the case of this particular transform. The method is provided only to comply with the interface of other transforms.

Definition at line 143 of file itkIdentityTransform.h.

◆ SetParameters()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::IdentityTransform< TParametersValueType, VDimension >::SetParameters ( const ParametersType &  )
inlineoverridevirtual

Set the fixed parameters and update internal transformation.

Implements itk::Transform< TParametersValueType, VDimension, VDimension >.

Definition at line 241 of file itkIdentityTransform.h.

◆ TransformCovariantVector()

template<typename TParametersValueType , unsigned int VDimension = 3>
OutputCovariantVectorType itk::IdentityTransform< TParametersValueType, VDimension >::TransformCovariantVector ( const InputCovariantVectorType vector) const
inlineoverride

Definition at line 133 of file itkIdentityTransform.h.

◆ TransformPoint()

template<typename TParametersValueType , unsigned int VDimension = 3>
OutputPointType itk::IdentityTransform< TParametersValueType, VDimension >::TransformPoint ( const InputPointType point) const
inlineoverride

Method to transform a point.

Definition at line 110 of file itkIdentityTransform.h.

References itk::point().

◆ TransformVector() [1/2]

template<typename TParametersValueType , unsigned int VDimension = 3>
OutputVectorType itk::IdentityTransform< TParametersValueType, VDimension >::TransformVector ( const InputVectorType vector) const
inlineoverride

Definition at line 118 of file itkIdentityTransform.h.

◆ TransformVector() [2/2]

template<typename TParametersValueType , unsigned int VDimension = 3>
OutputVnlVectorType itk::IdentityTransform< TParametersValueType, VDimension >::TransformVector ( const InputVnlVectorType vector) const
inlineoverride

Method to transform a vnl_vector.

Definition at line 125 of file itkIdentityTransform.h.

Member Data Documentation

◆ InputSpaceDimension

template<typename TParametersValueType , unsigned int VDimension = 3>
constexpr unsigned int itk::IdentityTransform< TParametersValueType, VDimension >::InputSpaceDimension = VDimension
staticconstexpr

Dimension of the domain space.

Definition at line 68 of file itkIdentityTransform.h.

◆ OutputSpaceDimension

template<typename TParametersValueType , unsigned int VDimension = 3>
constexpr unsigned int itk::IdentityTransform< TParametersValueType, VDimension >::OutputSpaceDimension = VDimension
staticconstexpr

Definition at line 69 of file itkIdentityTransform.h.


The documentation for this class was generated from the following file: