ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::ScaleTransform< TScalarType, NDimensions > Class Template Reference

Scale transformation of a vector space (e.g. space coordinates) More...

#include <itkScaleTransform.h>

Inheritance diagram for itk::ScaleTransform< TScalarType, NDimensions >:
Collaboration diagram for itk::ScaleTransform< TScalarType, NDimensions >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef CovariantVector
< TScalarType, NDimensions > 
InputCovariantVectorType
typedef Point< TScalarType,
NDimensions > 
InputPointType
typedef Vector< TScalarType,
NDimensions > 
InputVectorType
typedef vnl_vector_fixed
< TScalarType, NDimensions > 
InputVnlVectorType
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
typedef
Superclass::InverseTransformBaseType 
InverseTransformBaseType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MatrixType MatrixType
typedef CovariantVector
< TScalarType, NDimensions > 
OutputCovariantVectorType
typedef Point< TScalarType,
NDimensions > 
OutputPointType
typedef Vector< TScalarType,
NDimensions > 
OutputVectorType
typedef vnl_vector_fixed
< TScalarType, NDimensions > 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef FixedArray
< TScalarType, NDimensions > 
ScaleType
typedef ScaleTransform Self
typedef
MatrixOffsetTransformBase
< TScalarType, NDimensions,
NDimensions > 
Superclass

Public Member Functions

InputPointType BackTransform (const OutputPointType &point) const
InputVectorType BackTransform (const OutputVectorType &vector) const
InputVnlVectorType BackTransform (const OutputVnlVectorType &vector) const
InputCovariantVectorType BackTransform (const OutputCovariantVectorType &vector) const
void Compose (const Self *other, bool pre=false)
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &point, JacobianType &j) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jac) const
virtual void ComputeMatrix (void)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const ParametersTypeGetFixedParameters (void) const
bool GetInverse (Self *inverse) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual const char * GetNameOfClass () const
const ParametersTypeGetParameters (void) const
virtual const ScaleTypeGetScale ()
virtual bool IsLinear () const
void Scale (const ScaleType &scale, bool pre=false)
virtual void SetFixedParameters (const ParametersType &)
void SetIdentity (void)
void SetParameters (const ParametersType &parameters)
void SetScale (const ScaleType &scale)
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const
OutputPointType TransformPoint (const InputPointType &point) const
OutputVectorType TransformVector (const InputVectorType &vector) const
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const
virtual void SetCenter (InputPointType _arg)
virtual const InputPointTypeGetCenter ()

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int SpaceDimension = NDimensions
static const unsigned int ParametersDimension = NDimensions

Protected Member Functions

void PrintSelf (std::ostream &os, Indent indent) const
 ScaleTransform ()
 ~ScaleTransform ()

Private Member Functions

const Selfoperator= (const Self &)
 ScaleTransform (const Self &other)

Private Attributes

InputPointType m_Center
ParametersType m_FixedParameters
ScaleType m_Scale

Detailed Description

template<class TScalarType = float, unsigned int NDimensions = 3>
class itk::ScaleTransform< TScalarType, NDimensions >

Scale transformation of a vector space (e.g. space coordinates)

The same functionality could be obtained by using the Affine tranform, but with a large difference in performace since the affine transform will use a matrix multiplication using a diagonal matrix.

Wiki Examples:

Definition at line 47 of file itkScaleTransform.h.


Member Typedef Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<const Self> itk::ScaleTransform< TScalarType, NDimensions >::ConstPointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef CovariantVector<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 86 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Point<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::InputPointType

Standard coordinate point type for this class.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 94 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Vector<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::InputVectorType

Standard vector type for this class.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 82 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef vnl_vector_fixed<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::InputVnlVectorType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef InverseTransformBaseType::Pointer itk::ScaleTransform< TScalarType, NDimensions >::InverseTransformBasePointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::InverseTransformBaseType itk::ScaleTransform< TScalarType, NDimensions >::InverseTransformBaseType

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

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Definition at line 99 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::ScaleTransform< TScalarType, NDimensions >::JacobianType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::MatrixType itk::ScaleTransform< TScalarType, NDimensions >::MatrixType

Standard matrix type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Definition at line 102 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef CovariantVector<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::OutputCovariantVectorType

Standard covariant vector type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 87 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Point<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::OutputPointType

Standard coordinate point type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 95 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Vector<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::OutputVectorType

Standard vector type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 83 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef vnl_vector_fixed<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::OutputVnlVectorType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::ScaleTransform< TScalarType, NDimensions >::ParametersType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<Self> itk::ScaleTransform< TScalarType, NDimensions >::Pointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::ScaleTransform< TScalarType, NDimensions >::ScalarType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FixedArray<TScalarType, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::ScaleType

Standard vector type for this class.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 79 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef ScaleTransform itk::ScaleTransform< TScalarType, NDimensions >::Self
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef MatrixOffsetTransformBase<TScalarType, NDimensions, NDimensions> itk::ScaleTransform< TScalarType, NDimensions >::Superclass

Constructor & Destructor Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::ScaleTransform< TScalarType, NDimensions >::ScaleTransform ( ) [protected]

Construct an ScaleTransform object.

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::ScaleTransform< TScalarType, NDimensions >::~ScaleTransform ( ) [protected]

Destroy an ScaleTransform object.

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::ScaleTransform< TScalarType, NDimensions >::ScaleTransform ( const Self other) [private]

Member Function Documentation

template<class ScalarType , unsigned int NDimensions>
ScaleTransform< ScalarType, NDimensions >::InputPointType itk::ScaleTransform< ScalarType, NDimensions >::BackTransform ( const OutputPointType point) const [inline]

Back transform by a scale transformation This method finds the point or vector that maps to a given point or vector under the scale transformation defined by self. If no such point exists, an exception is thrown.

Definition at line 243 of file itkScaleTransform.h.

template<class ScalarType , unsigned int NDimensions>
ScaleTransform< ScalarType, NDimensions >::InputVectorType itk::ScaleTransform< ScalarType, NDimensions >::BackTransform ( const OutputVectorType vector) const [inline]

Definition at line 258 of file itkScaleTransform.h.

template<class ScalarType , unsigned int NDimensions>
ScaleTransform< ScalarType, NDimensions >::InputVnlVectorType itk::ScaleTransform< ScalarType, NDimensions >::BackTransform ( const OutputVnlVectorType vector) const [inline]

Definition at line 273 of file itkScaleTransform.h.

template<class ScalarType , unsigned int NDimensions>
ScaleTransform< ScalarType, NDimensions >::InputCovariantVectorType itk::ScaleTransform< ScalarType, NDimensions >::BackTransform ( const OutputCovariantVectorType vector) const [inline]

Definition at line 288 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::Compose ( const Self other,
bool  pre = false 
)
template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::ScaleTransform< TScalarType, NDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType point,
JacobianType j 
) const [virtual]

Get the Jacobian matrix.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::ScaleTransform< TScalarType, NDimensions >::ComputeJacobianWithRespectToPosition ( const InputPointType x,
JacobianType jac 
) const [virtual]

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

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::ScaleTransform< TScalarType, NDimensions >::ComputeMatrix ( void  ) [virtual]
template<class TScalarType = float, unsigned int NDimensions = 3>
virtual::itk::LightObject::Pointer itk::ScaleTransform< TScalarType, NDimensions >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const InputPointType& itk::ScaleTransform< TScalarType, NDimensions >::GetCenter ( ) [virtual]

Set/Get the center used as fixed point for the scaling

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const ParametersType& itk::ScaleTransform< TScalarType, NDimensions >::GetFixedParameters ( void  ) const [virtual]
template<class TScalarType = float, unsigned int NDimensions = 3>
bool itk::ScaleTransform< TScalarType, NDimensions >::GetInverse ( Self inverse) const

Find inverse of a scale transformation This method creates and returns a new ScaleTransform object which is the inverse of self. If self is not invertible, false is returned.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual InverseTransformBasePointer itk::ScaleTransform< TScalarType, NDimensions >::GetInverseTransform ( ) const [virtual]

Return an inverse of this transform.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const char* itk::ScaleTransform< TScalarType, NDimensions >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
const ParametersType& itk::ScaleTransform< TScalarType, NDimensions >::GetParameters ( void  ) const [virtual]

Get the parameters that uniquely define the transform This is typically used by optimizers during the process of image registration. The parameters are organized as {scale X, scale Y, scale Z } = { parameter[0], parameter[1], parameter[2] } respectively

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const ScaleType& itk::ScaleTransform< TScalarType, NDimensions >::GetScale ( ) [virtual]

Get access to scale values

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual bool itk::ScaleTransform< TScalarType, NDimensions >::IsLinear ( ) const [inline, virtual]

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)

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Definition at line 214 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
static Pointer itk::ScaleTransform< TScalarType, NDimensions >::New ( ) [static]

New macro for creation of through a smart pointer.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
const Self& itk::ScaleTransform< TScalarType, NDimensions >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]
template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::Scale ( const ScaleType scale,
bool  pre = false 
)

Compose this transform transformation with another scaling. The pre argument is irrelevant here since scale transforms are commutative, pre and postcomposition are therefore equivalent.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::ScaleTransform< TScalarType, NDimensions >::SetCenter ( InputPointType  _arg) [virtual]

Set/Get the center used as fixed point for the scaling

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::ScaleTransform< TScalarType, NDimensions >::SetFixedParameters ( const ParametersType ) [inline, virtual]

Set the fixed parameters and update internal transformation. This transform has no fixed paramaters

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Definition at line 119 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::SetIdentity ( void  ) [inline, virtual]

Set the transformation to an Identity

This sets all the scales to 1.0

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Definition at line 196 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::SetParameters ( const ParametersType parameters) [virtual]

Set parameters. This method sets the parameters for the transform value specified by the user. The parameters are organized as scale[i] = parameter[i]. That means that in 3D the scale parameters for the coordinates {x,y,z} are {parameter[0], parameter[1], parameter[2]} respectively

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::ScaleTransform< TScalarType, NDimensions >::SetScale ( const ScaleType scale) [inline]

Set the factors of an Scale Transform This method sets the factors of an ScaleTransform to a value specified by the user. This method cannot be done with SetMacro because itk::Array has not an operator== defined. The array of scales correspond in order to the factors to be applied to each one of the coordinaates. For example, in 3D, scale[0] corresponds to X, scale[1] corresponds to Y and scale[2] corresponds to Z.

Definition at line 143 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
OutputCovariantVectorType itk::ScaleTransform< TScalarType, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType ) const [virtual]
template<class TScalarType = float, unsigned int NDimensions = 3>
OutputPointType itk::ScaleTransform< TScalarType, NDimensions >::TransformPoint ( const InputPointType point) const

Transform by a scale transformation This method applies the scale transform given by self to a given point or vector, returning the transformed point or vector.

template<class TScalarType = float, unsigned int NDimensions = 3>
OutputVectorType itk::ScaleTransform< TScalarType, NDimensions >::TransformVector ( const InputVectorType vector) const
template<class TScalarType = float, unsigned int NDimensions = 3>
OutputVnlVectorType itk::ScaleTransform< TScalarType, NDimensions >::TransformVector ( const InputVnlVectorType vector) const

Member Data Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
InputPointType itk::ScaleTransform< TScalarType, NDimensions >::m_Center [private]
template<class TScalarType = float, unsigned int NDimensions = 3>
ParametersType itk::ScaleTransform< TScalarType, NDimensions >::m_FixedParameters [mutable, private]
template<class TScalarType = float, unsigned int NDimensions = 3>
ScaleType itk::ScaleTransform< TScalarType, NDimensions >::m_Scale [private]

Definition at line 233 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
const unsigned int itk::ScaleTransform< TScalarType, NDimensions >::ParametersDimension = NDimensions [static]

Dimension of the domain space.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, NDimensions, NDimensions >.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 66 of file itkScaleTransform.h.

template<class TScalarType = float, unsigned int NDimensions = 3>
const unsigned int itk::ScaleTransform< TScalarType, NDimensions >::SpaceDimension = NDimensions [static]

Dimension of the domain space.

Reimplemented in itk::ScaleLogarithmicTransform< TScalarType, NDimensions >.

Definition at line 65 of file itkScaleTransform.h.


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