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 SelfConstPointer
 
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< SelfPointer
 
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 SelfConstPointer
 
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< SelfPointer
 
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 JacobianTypeGetJacobian (const InputPointType &ipp) const
 
virtual bool GetNormalizeWeights () const
 
virtual unsigned int GetNumberOfParameters (void) const
 
virtual const ParametersTypeGetParameters ()
 
const TransformContainerTypeGetTransformContainer (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