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

#include <itkCompositeTransform.h>

+ Inheritance diagram for itk::CompositeTransform< TScalar, NDimensions >:
+ Collaboration diagram for itk::CompositeTransform< TScalar, NDimensions >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef
Superclass::InputDiffusionTensor3DType 
InputDiffusionTensor3DType
typedef Superclass::InputPointType InputPointType
typedef
Superclass::InputSymmetricSecondRankTensorType 
InputSymmetricSecondRankTensorType
typedef
Superclass::InputVectorPixelType 
InputVectorPixelType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
Superclass::InverseTransformBasePointer 
InverseTransformBasePointer
typedef Superclass::JacobianType JacobianType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef
Superclass::OutputDiffusionTensor3DType 
OutputDiffusionTensor3DType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputSymmetricSecondRankTensorType 
OutputSymmetricSecondRankTensorType
typedef
Superclass::OutputVectorPixelType 
OutputVectorPixelType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef CompositeTransform Self
typedef Transform< TScalar,
NDimensions, NDimensions > 
Superclass
typedef std::deque
< TransformTypePointer
TransformQueueType
typedef std::deque< bool > TransformsToOptimizeFlagsType
typedef Superclass TransformType
typedef Superclass::Pointer TransformTypePointer
- Public Types inherited from itk::Transform< TScalar, NDimensions, NDimensions >
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
typedef Transform< TScalar,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
typedef Matrix< TScalar,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
- Public Types inherited from itk::TransformBase
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

void AddTransform (TransformType *t)
void ClearTransformQueue ()
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &j) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void FlattenTransformQueue ()
const TransformTypePointer GetBackTransform ()
virtual const ParametersTypeGetFixedParameters (void) const
const TransformTypePointer GetFrontTransform ()
bool GetInverse (Self *inverse) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual const char * GetNameOfClass () const
const TransformTypePointer GetNthTransform (vcl_size_t n) const
bool GetNthTransformToOptimize (vcl_size_t i) const
virtual NumberOfParametersType GetNumberOfFixedParameters (void) const
virtual NumberOfParametersType GetNumberOfLocalParameters (void) const
virtual NumberOfParametersType GetNumberOfParameters (void) const
vcl_size_t GetNumberOfTransforms () const
virtual const ParametersTypeGetParameters (void) const
const TransformQueueTypeGetTransformQueue () const
const
TransformsToOptimizeFlagsType
GetTransformsToOptimizeFlags () const
virtual bool HasLocalSupport () const
virtual bool IsLinear () const
bool IsTransformQueueEmpty ()
void RemoveTransform ()
void SetAllTransformsToOptimize (bool state)
void SetAllTransformsToOptimizeOff ()
void SetAllTransformsToOptimizeOn ()
virtual void SetFixedParameters (const ParametersType &fixedParameters)
void SetNthTransformToOptimize (vcl_size_t i, bool state)
void SetNthTransformToOptimizeOff (vcl_size_t i)
void SetNthTransformToOptimizeOn (vcl_size_t i)
void SetOnlyMostRecentTransformToOptimizeOn ()
virtual void SetParameters (const ParametersType &p)
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &inputVector, const InputPointType &inputPoint) const
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &inputVector, const InputPointType &inputPoint) const
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor) const
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &inputPoint) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &inputPoint) const
virtual OutputPointType TransformPoint (const InputPointType &inputPoint) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &inputPoint) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &inputPoint) const
virtual OutputVectorType TransformVector (const InputVectorType &) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &inputVector) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &inputVector) const
virtual OutputVectorType TransformVector (const InputVectorType &inputVector, const InputPointType &inputPoint) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &inputVector, const InputPointType &inputPoint) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &inputVector, const InputPointType &inputPoint) const
virtual void UpdateTransformParameters (const DerivativeType &update, ScalarType factor=1.0)
- Public Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
unsigned int GetInputSpaceDimension (void) const
unsigned int GetOutputSpaceDimension (void) const
virtual std::string GetTransformTypeAsString () const
 itkCloneMacro (Self)
virtual void SetFixedParameters (const ParametersType &)=0
virtual void SetParameters (const ParametersType &)=0
virtual void SetParametersByValue (const ParametersType &p)
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 &tensor, const InputPointType &point) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const
virtual OutputPointType TransformPoint (const InputPointType &) const =0
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, 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 OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
virtual void UpdateTransformParameters (const DerivativeType &update, TScalarfactor=1.0)
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int InputDimension = NDimensions
static const unsigned int OutputDimension = NDimensions
- Static Public Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
static const unsigned int InputSpaceDimension
static const unsigned int OutputSpaceDimension

Protected Member Functions

 CompositeTransform ()
TransformQueueTypeGetTransformsToOptimizeQueue () const
virtual LightObject::Pointer InternalClone () const
void PopBackTransform ()
void PopFrontTransform ()
void PrintSelf (std::ostream &os, Indent indent) const
void PushBackTransform (TransformTypePointer t)
void PushFrontTransform (TransformTypePointer t)
virtual ~CompositeTransform ()
- Protected Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType, const JacobianType) const
 Transform ()
 Transform (NumberOfParametersType NumberOfParameters)
virtual ~Transform ()
- Protected Member Functions inherited from itk::TransformBase
 TransformBase ()
virtual ~TransformBase ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Protected Attributes

NumberOfParametersType m_NumberOfLocalParameters
TransformQueueType m_TransformQueue
TransformsToOptimizeFlagsType m_TransformsToOptimizeFlags
TransformQueueType m_TransformsToOptimizeQueue
- Protected Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
ParametersType m_FixedParameters
ParametersType m_Parameters

Private Member Functions

 CompositeTransform (const Self &)
void operator= (const Self &)

Private Attributes

unsigned long m_LocalParametersUpdateTime
unsigned long m_PreviousTransformsToOptimizeUpdateTime

Detailed Description

template<class TScalar = double, unsigned int NDimensions = 3>
class itk::CompositeTransform< TScalar, NDimensions >

This class contains a list of transforms and concatenates them by composition.

This class concatenates transforms by means of composition: $ T_1 o T_0 = T_1(T_0(x)) $ Transforms are stored in a container (queue), in the following order: $ T_0, T_1, ... , T_N-1 $ Transforms are added via a single method, AddTransform(). This adds the transforms to the back of the queue. A single method for adding transforms is meant to simplify the interface and prevent errors. One use of the class is to optimize only a subset of included transforms.

Example: A user wants to optimize two Affine transforms together, then add a Deformation Field (DF) transform, and optimize it separately. He first adds the two Affines, then runs the optimization and both Affines transforms are optimized. Next, he adds the DF transform and calls SetOnlyMostRecentTransformToOptimizeOn, which clears the optimization flags for both of the affine transforms, and leaves the flag set only for the DF transform, since it was the last transform added. Now he runs the optimization and only the DF transform is optimized, but the affines are included in the transformation during the optimization.

Optimization Flags: The m_TransformsToOptimize flags hold one flag for each transform in the queue, designating if each transform is to be used for optimization. Note that all transforms in the queue are applied in TransformPoint, regardless of these flags states'. The methods GetParameters, SetParameters, ComputeJacobianWithRespectToParameters, ComputeJacobianWithRespectToPosition, GetFixedParameters, and SetFixedParameters all query these flags and include only those transforms whose corresponding flag is set. Their input or output is a concatenated array of all transforms set for use in optimization. The goal is to be able to optimize multiple transforms at once, while leaving other transforms fixed. See the above example.

Setting Optimization Flags: A transform's optimization flag is set when it is added to the queue, and remains set as other transforms are added. The methods SetNthTransformToOptimize* and SetAllTransformToOptimize* are used to set and clear flags arbitrarily. SetOnlyMostRecentTransformToOptimizeOn is a convenience method for setting only the most recently added transform for optimization, with the idea that this will be a common practice.

Indexing: The index values used in GetNthTransform and SetNthTransformToOptimize* and SetAllTransformToOptimize* follow the order in which transforms were added. Thus, the first transform added is at index 0, the next at index 1, etc.

Inverse: The inverse transform is created by retrieving the inverse from each sub transform and adding them to a composite transform in reverse order. The m_TransformsToOptimizeFlags is copied in reverse for the inverse.

TODO

Interface Issues/Comments x The PushFrontTransform and PushBackTransform methods are protected to force the user to use the AddTransform method, forcing the order of transforms. Are there use cases where the user would need to insert transforms at the front of the queue? Or at arbitrary positions?

GetParameters efficiency optimization Can we optimize this to only query the sub-transforms when the params in the sub transforms have changed since the previous call? Can't use Modified time b/c that will get updated in sub-transforms with every call to SetParameters. Is this worth worrying about? i.e. how much time will it take in the overall registration process? Probably very little.

Definition at line 102 of file itkCompositeTransform.h.


Member Typedef Documentation

template<class TScalar = double, unsigned int NDimensions = 3>
typedef SmartPointer<const Self> itk::CompositeTransform< TScalar, NDimensions >::ConstPointer

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 110 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::DerivativeType itk::CompositeTransform< TScalar, NDimensions >::DerivativeType

Derivative type

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 134 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputCovariantVectorType itk::CompositeTransform< TScalar, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 149 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputDiffusionTensor3DType itk::CompositeTransform< TScalar, NDimensions >::InputDiffusionTensor3DType

Standard DiffusionTensor3D typedef for this class

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 162 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputPointType itk::CompositeTransform< TScalar, NDimensions >::InputPointType

Standard coordinate point type for this class.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 140 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputSymmetricSecondRankTensorType itk::CompositeTransform< TScalar, NDimensions >::InputSymmetricSecondRankTensorType

Standard SymmetricSecondRankTensor typedef for this class

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 167 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::InputVectorPixelType

Standard Vectorpixel type for this class

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 158 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputVectorType itk::CompositeTransform< TScalar, NDimensions >::InputVectorType

Standard vector type for this class.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 144 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InputVnlVectorType itk::CompositeTransform< TScalar, NDimensions >::InputVnlVectorType

Standard vnl_vector type for this class.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 154 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::InverseTransformBasePointer itk::CompositeTransform< TScalar, NDimensions >::InverseTransformBasePointer

InverseTransform type.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 124 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::CompositeTransform< TScalar, NDimensions >::JacobianType

Jacobian type.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 137 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::NumberOfParametersType itk::CompositeTransform< TScalar, NDimensions >::NumberOfParametersType

The number of parameters defininig this transform.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 178 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputCovariantVectorType itk::CompositeTransform< TScalar, NDimensions >::OutputCovariantVectorType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 151 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputDiffusionTensor3DType itk::CompositeTransform< TScalar, NDimensions >::OutputDiffusionTensor3DType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 163 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputPointType itk::CompositeTransform< TScalar, NDimensions >::OutputPointType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 141 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputSymmetricSecondRankTensorType itk::CompositeTransform< TScalar, NDimensions >::OutputSymmetricSecondRankTensorType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 169 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::OutputVectorPixelType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 159 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputVectorType itk::CompositeTransform< TScalar, NDimensions >::OutputVectorType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 145 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::OutputVnlVectorType itk::CompositeTransform< TScalar, NDimensions >::OutputVnlVectorType

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 155 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::CompositeTransform< TScalar, NDimensions >::ParametersType

Parameters type.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 130 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::ParametersValueType itk::CompositeTransform< TScalar, NDimensions >::ParametersValueType

Type of the input parameters.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 131 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef SmartPointer<Self> itk::CompositeTransform< TScalar, NDimensions >::Pointer

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 109 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::CompositeTransform< TScalar, NDimensions >::ScalarType

Scalar type.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 127 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef CompositeTransform itk::CompositeTransform< TScalar, NDimensions >::Self

Standard class typedefs.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 107 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Transform<TScalar, NDimensions, NDimensions> itk::CompositeTransform< TScalar, NDimensions >::Superclass

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

Definition at line 108 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef std::deque<TransformTypePointer> itk::CompositeTransform< TScalar, NDimensions >::TransformQueueType

Transform queue type

Definition at line 172 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef std::deque<bool> itk::CompositeTransform< TScalar, NDimensions >::TransformsToOptimizeFlagsType

Optimization flags queue type

Definition at line 175 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass itk::CompositeTransform< TScalar, NDimensions >::TransformType

Component transform type

Definition at line 116 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
typedef Superclass::Pointer itk::CompositeTransform< TScalar, NDimensions >::TransformTypePointer

Definition at line 120 of file itkCompositeTransform.h.


Constructor & Destructor Documentation

template<class TScalar = double, unsigned int NDimensions = 3>
itk::CompositeTransform< TScalar, NDimensions >::CompositeTransform ( )
protected
template<class TScalar = double, unsigned int NDimensions = 3>
virtual itk::CompositeTransform< TScalar, NDimensions >::~CompositeTransform ( )
protectedvirtual
template<class TScalar = double, unsigned int NDimensions = 3>
itk::CompositeTransform< TScalar, NDimensions >::CompositeTransform ( const Self )
private

Member Function Documentation

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::AddTransform ( TransformType t)
inline

Functionality for sub transforms Add transforms to the queue, as stack. Only allow one method for simplicity. Most-recently added transform is always at back of queue, index N-1.

Definition at line 190 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::ClearTransformQueue ( )
inline

Definition at line 295 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType p,
JacobianType j 
) const
virtual

Compute the Jacobian with respect to the parameters for the compositie transform using Jacobian rule. See comments in the implementation.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToPosition ( const InputPointType ,
JacobianType  
) const
inlinevirtual

Definition at line 458 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual::itk::LightObject::Pointer itk::CompositeTransform< TScalar, 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::Object.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::FlattenTransformQueue ( )
virtual

Flatten the transform queue such that there are no nested composite transforms.

template<class TScalar = double, unsigned int NDimensions = 3>
const TransformTypePointer itk::CompositeTransform< TScalar, NDimensions >::GetBackTransform ( )
inline

Definition at line 208 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual const ParametersType& itk::CompositeTransform< TScalar, NDimensions >::GetFixedParameters ( void  ) const
virtual

Get the Fixed Parameters.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
const TransformTypePointer itk::CompositeTransform< TScalar, NDimensions >::GetFrontTransform ( )
inline

See transforms at the front and the back of the queue

Definition at line 202 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
bool itk::CompositeTransform< TScalar, NDimensions >::GetInverse ( Self inverse) const

Return an inverse of this transform.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual InverseTransformBasePointer itk::CompositeTransform< TScalar, NDimensions >::GetInverseTransform ( ) const
virtual

Return an inverse of this transform. If the inverse has not been implemented, return NULL. The type of the inverse transform does not necessarily need to match the type of the forward transform. This allows one to return a numeric inverse transform instead.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual const char* itk::CompositeTransform< TScalar, NDimensions >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
const TransformTypePointer itk::CompositeTransform< TScalar, NDimensions >::GetNthTransform ( vcl_size_t  n) const
inline

Definition at line 214 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
bool itk::CompositeTransform< TScalar, NDimensions >::GetNthTransformToOptimize ( vcl_size_t  i) const
inline

Definition at line 267 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual NumberOfParametersType itk::CompositeTransform< TScalar, NDimensions >::GetNumberOfFixedParameters ( void  ) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual NumberOfParametersType itk::CompositeTransform< TScalar, NDimensions >::GetNumberOfLocalParameters ( void  ) const
virtual

Return the number of local parameters that completely defines the Transform at an individual voxel. For transforms with local support, this will enable downstream computation of the jacobian wrt only the local support region. For instance, in the case of a deformation field, this will be equal to the number of image dimensions. If it is an affine transform, this will be the same as the GetNumberOfParameters().

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual NumberOfParametersType itk::CompositeTransform< TScalar, NDimensions >::GetNumberOfParameters ( void  ) const
virtual

Return the number of parameters that completely define the Transfom

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
vcl_size_t itk::CompositeTransform< TScalar, NDimensions >::GetNumberOfTransforms ( ) const
inline

Definition at line 290 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual const ParametersType& itk::CompositeTransform< TScalar, NDimensions >::GetParameters ( void  ) const
virtual

Get/Set Parameter functions work on the current list of transforms that are set to be optimized (active) using the 'Set[Nth|All]TransformToOptimze' routines. The parameter data from each active transform is concatenated into a single ParametersType object.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
const TransformQueueType& itk::CompositeTransform< TScalar, NDimensions >::GetTransformQueue ( ) const
inline

Access transform queue

Definition at line 273 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
const TransformsToOptimizeFlagsType& itk::CompositeTransform< TScalar, NDimensions >::GetTransformsToOptimizeFlags ( ) const
inline

Access optimize flags

Definition at line 279 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
TransformQueueType& itk::CompositeTransform< TScalar, NDimensions >::GetTransformsToOptimizeQueue ( ) const
protected

Get a list of transforms to optimize. Helper function.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual bool itk::CompositeTransform< TScalar, NDimensions >::HasLocalSupport ( ) const
virtual

Indicates if this transform is a "global" transform e.g. an affine transform or a local one, e.g. a deformation field. Returns true if only all sub-transforms that are set to be optimized return true.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual LightObject::Pointer itk::CompositeTransform< TScalar, NDimensions >::InternalClone ( ) const
protectedvirtual

Clone the current transform

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual bool itk::CompositeTransform< TScalar, NDimensions >::IsLinear ( ) const
virtual

Indicates if this transform is linear. A transform is defined to be linear if the transform of a linear combination of points is equal to the linear combination (with the same coefficients) of the individual transforms of each point. The transform T will be linear if given two points P and Q, and scalar coefficients a and b, then

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

By default, we assume this to NOT be the case for most transforms. However, transforms for which this is true will overload and reimplement this method accordingly.

Warning:
This method must be thread-safe. See, e.g., its use in ResampleImageFilter.

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
bool itk::CompositeTransform< TScalar, NDimensions >::IsTransformQueueEmpty ( )
inline

Misc. functionality

Definition at line 285 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
static Pointer itk::CompositeTransform< TScalar, NDimensions >::New ( )
static

New macro for creation of through a Smart Pointer

Reimplemented from itk::Object.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::operator= ( const Self )
private

Mutex lock to protect modification to the reference count

Reimplemented from itk::Transform< TScalar, NDimensions, NDimensions >.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::PopBackTransform ( )
inlineprotected

Definition at line 496 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::PopFrontTransform ( )
inlineprotected

Definition at line 489 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::Object.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::PushBackTransform ( TransformTypePointer  t)
inlineprotected

Definition at line 481 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::PushFrontTransform ( TransformTypePointer  t)
inlineprotected

Definition at line 473 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::RemoveTransform ( )
inline

Definition at line 195 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetAllTransformsToOptimize ( bool  state)
inline

Definition at line 237 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetAllTransformsToOptimizeOff ( )
inline

Definition at line 249 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetAllTransformsToOptimizeOn ( )
inline

Definition at line 244 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::SetFixedParameters ( const ParametersType fixedParameters)
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetNthTransformToOptimize ( vcl_size_t  i,
bool  state 
)
inline

Active Transform state manipulation

Definition at line 221 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetNthTransformToOptimizeOff ( vcl_size_t  i)
inline

Definition at line 232 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetNthTransformToOptimizeOn ( vcl_size_t  i)
inline

Definition at line 227 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
void itk::CompositeTransform< TScalar, NDimensions >::SetOnlyMostRecentTransformToOptimizeOn ( )
inline

Definition at line 257 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::SetParameters ( const ParametersType p)
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputCovariantVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType ) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputVectorPixelType ) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputCovariantVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType inputVector,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputVectorPixelType inputVector,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputDiffusionTensor3DType itk::CompositeTransform< TScalar, NDimensions >::TransformDiffusionTensor3D ( const InputDiffusionTensor3DType inputTensor) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformDiffusionTensor3D ( const InputVectorPixelType inputTensor) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputDiffusionTensor3DType itk::CompositeTransform< TScalar, NDimensions >::TransformDiffusionTensor3D ( const InputDiffusionTensor3DType inputTensor,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformDiffusionTensor3D ( const InputVectorPixelType inputTensor,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputPointType itk::CompositeTransform< TScalar, NDimensions >::TransformPoint ( const InputPointType inputPoint) const
virtual

Compute the position of point in the new space.

Transforms are applied starting from the back of the queue. That is, in reverse order of which they were added, in order to work properly with ResampleFilter.

Imagine a user wants to apply an Affine transform followed by a Deformation Field (DF) transform. He adds the Affine, then the DF. Because the user typically conceptualizes a transformation as being applied from the Moving image to the Fixed image, this makes intuitive sense. But since the ResampleFilter expects to transform from the Fixed image to the Moving image, the transforms are applied in reverse order of addition, i.e. from the back of the queue, and thus, DF then Affine.

template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputSymmetricSecondRankTensorType itk::CompositeTransform< TScalar, NDimensions >::TransformSymmetricSecondRankTensor ( const InputSymmetricSecondRankTensorType inputTensor) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformSymmetricSecondRankTensor ( const InputVectorPixelType inputTensor) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputSymmetricSecondRankTensorType itk::CompositeTransform< TScalar, NDimensions >::TransformSymmetricSecondRankTensor ( const InputSymmetricSecondRankTensorType inputTensor,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformSymmetricSecondRankTensor ( const InputVectorPixelType inputTensor,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVectorType ) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVnlVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVnlVectorType inputVector) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVectorPixelType inputVector) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVectorType inputVector,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVnlVectorType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVnlVectorType inputVector,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual OutputVectorPixelType itk::CompositeTransform< TScalar, NDimensions >::TransformVector ( const InputVectorPixelType inputVector,
const InputPointType inputPoint 
) const
virtual
template<class TScalar = double, unsigned int NDimensions = 3>
virtual void itk::CompositeTransform< TScalar, NDimensions >::UpdateTransformParameters ( const DerivativeType update,
ScalarType  factor = 1.0 
)
virtual

Update the transform's parameters by the values in update. We assume update is of the same length as Parameters. Throw exception otherwise. factor is a scalar multiplier for each value in update. SetParameters is called on each sub-transform, to allow transforms to perform any required operations on the update parameters, typically a converion to member variables for use in TransformPoint.


Member Data Documentation

template<class TScalar = double, unsigned int NDimensions = 3>
const unsigned int itk::CompositeTransform< TScalar, NDimensions >::InputDimension = NDimensions
static

Dimension of the domain spaces.

Definition at line 181 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
unsigned long itk::CompositeTransform< TScalar, NDimensions >::m_LocalParametersUpdateTime
mutableprivate

Definition at line 526 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
NumberOfParametersType itk::CompositeTransform< TScalar, NDimensions >::m_NumberOfLocalParameters
mutableprotected

Unify the parameter memory be copying all sub-transform parameters into a single memory block, and redirecting sub-transform's parameter memory to point within this block.

Warning:
This will temporarily use twice the memory of all sub-transform. Temporary to save time return number of local parameters

Definition at line 511 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
unsigned long itk::CompositeTransform< TScalar, NDimensions >::m_PreviousTransformsToOptimizeUpdateTime
mutableprivate

Definition at line 525 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
TransformQueueType itk::CompositeTransform< TScalar, NDimensions >::m_TransformQueue
mutableprotected

Transform container object.

Definition at line 514 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
TransformsToOptimizeFlagsType itk::CompositeTransform< TScalar, NDimensions >::m_TransformsToOptimizeFlags
mutableprotected

Definition at line 520 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
TransformQueueType itk::CompositeTransform< TScalar, NDimensions >::m_TransformsToOptimizeQueue
mutableprotected

Definition at line 519 of file itkCompositeTransform.h.

template<class TScalar = double, unsigned int NDimensions = 3>
const unsigned int itk::CompositeTransform< TScalar, NDimensions >::OutputDimension = NDimensions
static

Dimension of the domain spaces.

Definition at line 182 of file itkCompositeTransform.h.


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