Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

cmtk::VoxelMatchingElasticFunctional_WarpTemplate< W > Class Template Reference
[cmtkRegistration Library]

Template class for elastic registration functional. More...

#include <cmtkVoxelMatchingElasticFunctional.h>

Inheritance diagram for cmtk::VoxelMatchingElasticFunctional_WarpTemplate< W >:
Inheritance graph
[legend]
Collaboration diagram for cmtk::VoxelMatchingElasticFunctional_WarpTemplate< W >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
VoxelMatchingElasticFunctional_WarpTemplate
< W > 
Self
 This class.
typedef SmartPointer< SelfSmartPtr
 Smart pointer to this class.
typedef
VoxelMatchingElasticFunctional 
Superclass
 Superclass.

Public Member Functions

void SetInverseTransformation (typename W::SmartPtr &inverseTransformation)
 Set inverse transformation.
void SetInverseConsistencyWeight (const double inverseConsistencyWeight)
 Set inverse consistency weight.
virtual Types::Coordinate GetParamStep (const size_t idx, const Types::Coordinate mmStep=1) const
 Get parameter stepping in milimeters.
virtual size_t ParamVectorDim () const
 Return the transformation's parameter vector dimension.
virtual size_t VariableParamVectorDim () const
 Return the number of variable parameters of the transformation.
virtual void SetWarpXform (typename W::SmartPtr &warp)
 Set warp transformation.
virtual void GetParamVector (CoordinateVector &v)
 Return parameter vector.

Public Attributes

W::SmartPtr Warp
 Pointer to the local warp transformation.

Protected Member Functions

Self::ReturnType WeightedTotal (const typename Self::ReturnType metric, const W *warp) const
 Return weighted combination of voxel similarity and grid energy.
void WeightedDerivative (double &lower, double &upper, W &warp, const int param, const Types::Coordinate step) const
 Return weighted combination of similarity and grid energy derivatives.
 VoxelMatchingElasticFunctional_WarpTemplate (UniformVolume::SmartPtr &reference, UniformVolume::SmartPtr &floating)
 Constructor.
virtual ~VoxelMatchingElasticFunctional_WarpTemplate ()
 Dummy virtual destructor.

Protected Attributes

W::SmartPtr InverseTransformation
 Optional inverse transformation for inverse-consistent deformation.
double InverseConsistencyWeight
 Weight for inverse consistency constraint.

Detailed Description

template<class W>
class cmtk::VoxelMatchingElasticFunctional_WarpTemplate< W >

Template class for elastic registration functional.

This class incorporates all deformation-specific parts of the registration functional for voxel-based non-rigid registration. The deformation type itself is defined by the template-parameter W.

Note:
The way multithreading is implemented by this class is as follows: A fixed number of threads (currently two) is created. Each thread is assigned a unique number from 0 through numberOfThreads-1. It then iterates over all parameters of the current warp transformation object, counting the variable (i.e., non-fixed) parameters. Out of these, it computes the partial derivative of the image similarity measure for those parameters for which the modulus of the active parameter index divided by the number of threads equals its own thread id.
There are several advantages to this approach over others. First, if one were to have one thread compute the upper and one the lower neighbor in parameter space for each parameter, that would require 2 times the number of parameters many threads, resulting in severy computation overhead. Instead, with the approach implemented here, we only need the given number of threads which will then work in parallel as much as possible.

Definition at line 206 of file cmtkVoxelMatchingElasticFunctional.h.


Member Typedef Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines