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

#include <itkWeightedCombinationTransform.h>

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

Public Types

typedef SmartPointer< const Self > ConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< Self > Pointer
typedef Superclass::ScalarType ScalarType
typedef
WeightedCombinationTransform 
Self
typedef
Superclass::SpatialHessianType 
SpatialHessianType
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
typedef AdvancedTransform
< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
typedef std::vector
< TransformPointer > 
TransformContainerType
typedef TransformType::Pointer TransformPointer
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
TransformType

Public Member Functions

virtual const char * GetClassName () const
virtual void GetJacobian (const InputPointType &ipp, JacobianType &jac, NonZeroJacobianIndicesType &nzji) const
virtual const JacobianType & GetJacobian (const InputPointType &ipp) const
virtual bool GetNormalizeWeights () const
virtual unsigned int GetNumberOfParameters (void) const
virtual const ParametersType & GetParameters ()
const TransformContainerType & GetTransformContainer (void) const
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
virtual void SetNormalizeWeights (bool _arg)
virtual void SetParameters (const ParametersType &param)
virtual void SetTransformContainer (const TransformContainerType &transformContainer)
virtual OutputPointType TransformPoint (const InputPointType &ipp) const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 WeightedCombinationTransform ()
virtual ~WeightedCombinationTransform ()

Protected Attributes

double m_SumOfWeights
TransformContainerType m_TransformContainer

Private Member Functions

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

Private Attributes

bool m_NormalizeWeights

Detailed Description

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

Implements a weighted linear combination of multiple transforms.

This transform implements:

\[T(x) = x + \sum_i w_i ( T_i(x) - x )\]

where $w_i$ are the weights, which are the transform's parameters, and can be set/get by Set/GetParameters().

Alternatively, if the NormalizeWeights parameter is set to true, the transformation is as follows:

\[T(x) = \sum_i w_i T_i(x) / \sum_i w_i\]

Definition at line 41 of file itkWeightedCombinationTransform.h.


Member Typedef Documentation

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer< const Self > itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::InputCovariantVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputCovariantVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputPointType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputPointType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVnlVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVnlVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianOfSpatialJacobianType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialJacobianType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::NonZeroJacobianIndicesType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::NonZeroJacobianIndicesType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::OutputCovariantVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputCovariantVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputPointType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVnlVectorType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVnlVectorType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ParametersType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer< Self > itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Pointer
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ScalarType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::ScalarType

Typedefs from the Superclass.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

Definition at line 64 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef WeightedCombinationTransform itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Self

Standard class typedefs.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

Definition at line 46 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::SpatialHessianType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::SpatialJacobianType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SpatialJacobianType
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::Superclass
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef std::vector< TransformPointer > itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformContainerType

Definition at line 90 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef TransformType::Pointer itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPointer
Todo:
: shouldn't these be ConstPointers?

Definition at line 89 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Transform< TScalarType, NInputDimensions, NOutputDimensions > itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformType

New typedefs in this class:

Definition at line 87 of file itkWeightedCombinationTransform.h.


Constructor & Destructor Documentation

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::WeightedCombinationTransform ( ) [protected]
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::~WeightedCombinationTransform ( ) [inline, protected, virtual]

Definition at line 150 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::WeightedCombinationTransform ( const Self &  ) [private]

Member Function Documentation

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

Run-time type information (and related methods).

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType &  ipp,
JacobianType &  jac,
NonZeroJacobianIndicesType &  nzji 
) const [virtual]

This returns a sparse version of the Jacobian of the transformation. In this class however, the Jacobian is not sparse. However, it is a useful function, since the Jacobian is passed by reference, which makes it threadsafe, unlike the normal GetJacobian function.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const JacobianType& itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType &  ipp) const [virtual]

The GetJacobian from the superclass.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNormalizeWeights ( ) const [virtual]
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual unsigned int itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfParameters ( void  ) const [inline, virtual]

Return the number of subtransforms that have been set

Definition at line 117 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const ParametersType& itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetParameters ( ) [virtual]

Get the currently set parameters

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const TransformContainerType& itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetTransformContainer ( void  ) const [inline]

Return the vector of subtransforms by const reference. So, if you want to add a subtransform, you should do something like this: TransformContainerType vec = transform->GetTransformContainer(); vec.push_back( newsubtransformPointer ); transform->SetTransformContainer( vec ); Although perhaps not really efficient, this makes sure that this->Modified() is called when the transform container is updated.

Definition at line 143 of file itkWeightedCombinationTransform.h.

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

Dimension of the domain space.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned  int,
NOutputDimensions   
)
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
static Pointer itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::New ( ) [static]

New method for creating an object using a factory.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::operator= ( const Self &  ) [private]
template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetNormalizeWeights ( bool  _arg) [virtual]

Set/get if the weights (parameters) should be normalized. Default: false.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetParameters ( const ParametersType &  param) [virtual]

Set the parameters. Computes the sum of weights (which is the normalization term). And checks if the number of parameters is correct

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTransformContainer ( const TransformContainerType &  transformContainer) [inline, virtual]

Set the vector of subtransforms. Calls a this->Modified()

Definition at line 128 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual OutputPointType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPoint ( const InputPointType &  ipp) const [virtual]

Method to transform a point.


Field Documentation

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_NormalizeWeights [private]

Definition at line 160 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
double itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_SumOfWeights [protected]

Definition at line 153 of file itkWeightedCombinationTransform.h.

template<class TScalarType , unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TransformContainerType itk::WeightedCombinationTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_TransformContainer [protected]

Definition at line 150 of file itkWeightedCombinationTransform.h.



Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo