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 Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
typedef SmartPointer< const Self > ConstPointer
 
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
 
typedef
SpatialJacobianType::InternalMatrixType 
InternalMatrixType
 
typedef std::vector
< SpatialHessianType > 
JacobianOfSpatialHessianType
 
typedef std::vector
< SpatialJacobianType > 
JacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef std::vector< unsigned
long > 
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 AdvancedTransform Self
 
typedef FixedArray< Matrix
< ScalarType,
InputSpaceDimension,
InputSpaceDimension >
, OutputSpaceDimension > 
SpatialHessianType
 
typedef Matrix< ScalarType,
OutputSpaceDimension,
InputSpaceDimension > 
SpatialJacobianType
 
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
 

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
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual unsigned long GetNumberOfNonZeroJacobianIndices (void) const
 
virtual void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const
 
virtual void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
static Pointer New ()
 

Protected Member Functions

 WeightedCombinationTransform ()
 
virtual ~WeightedCombinationTransform ()
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()
 
 AdvancedTransform (unsigned int Dimension, unsigned int NumberOfParameters)
 
virtual ~AdvancedTransform ()
 

Protected Attributes

double m_SumOfWeights
 
TransformContainerType m_TransformContainer
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian
 
bool m_HasNonZeroSpatialHessian
 

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

Definition at line 51 of file itkWeightedCombinationTransform.h.

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

Definition at line 70 of file itkWeightedCombinationTransform.h.

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

Definition at line 75 of file itkWeightedCombinationTransform.h.

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

Definition at line 67 of file itkWeightedCombinationTransform.h.

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

Definition at line 73 of file itkWeightedCombinationTransform.h.

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

Definition at line 81 of file itkWeightedCombinationTransform.h.

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

Definition at line 66 of file itkWeightedCombinationTransform.h.

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

Definition at line 78 of file itkWeightedCombinationTransform.h.

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

Definition at line 72 of file itkWeightedCombinationTransform.h.

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

Definition at line 76 of file itkWeightedCombinationTransform.h.

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

Definition at line 68 of file itkWeightedCombinationTransform.h.

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

Definition at line 74 of file itkWeightedCombinationTransform.h.

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

Definition at line 65 of file itkWeightedCombinationTransform.h.

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

Definition at line 50 of file itkWeightedCombinationTransform.h.

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

Typedefs from the Superclass.

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.

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

Definition at line 82 of file itkWeightedCombinationTransform.h.

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

Definition at line 79 of file itkWeightedCombinationTransform.h.

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

Definition at line 49 of file itkWeightedCombinationTransform.h.

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 ( )
inlineprotectedvirtual

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
inlinevirtual

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.

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.

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)
inlinevirtual

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 06-12-2013 for elastix by doxygen 1.8.5 elastix logo