Classes | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends

cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional > Class Template Reference
[cmtkRegistration Library]

Class for spline warp multi-channel registration functional. More...

#include <cmtkSplineWarpMultiChannelRegistrationFunctional.h>

Inheritance diagram for cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >:
Inheritance graph
[legend]
Collaboration diagram for cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >:
Collaboration graph
[legend]

List of all members.

Classes

class  EvaluateGradientThreadParameters
 Parameters for threaded gradient computation. More...

Public Types

typedef
SplineWarpMultiChannelRegistrationFunctional 
Self
 This class.
typedef SmartPointer< SelfSmartPtr
 Smart pointer.
typedef
TemplateMultiChannelRegistrationFunctional
< SplineWarpXform,
TMetricFunctional
Superclass
 This class.
typedef Superclass::MetricData MetricData
 Metric data subclass.

Public Member Functions

 SplineWarpMultiChannelRegistrationFunctional ()
 Default constructor.
template<class TAffineMetricFunctional >
 SplineWarpMultiChannelRegistrationFunctional (AffineMultiChannelRegistrationFunctional< TAffineMetricFunctional > &affineFunctional)
 Constructor from affine multi-channel functional.
virtual void SetInitialAffineTransformation (const AffineXform &initialAffine)
 Set initial affine transformation.
void SetAdaptiveFixEntropyThreshold (const bool flag)
 Set flag for entropy vs.
void SetAdaptiveFixThreshFactor (const float factor)
 Set adaptive fixing entropy threshold factor.
void ClearFixedCoordinateDimensions ()
 Clear list of fixed coordinate dimensions.
void AddFixedCoordinateDimension (const int dim)
 Add a coordinate list of fixed coordinate dimensions.
void SetJacobianConstraintWeight (const float weight)
 Set Jacobian volume preservation constraint weight.
virtual void InitTransformation (const Vector3D &domain, const Types::Coordinate gridSpacing, const bool exact)
 Initialize transformation.
virtual void RefineTransformation ()
 Refine transformation control point grid by factor 2.
virtual void ClearAllChannels ()
 Reset channels, clear all images.
virtual Self::ReturnType Evaluate ()
 Compute functional value.
virtual Self::ReturnType EvaluateWithGradient (CoordinateVector &v, CoordinateVector &g, const Types::Coordinate step=1)
 Compute functional value and gradient.

Protected Member Functions

virtual void NewReferenceChannelGeometry ()
 Update all transformation-related data after init, refine, or image change.

Private Member Functions

virtual void UpdateTransformationData ()
 Update all transformation-related data after init, refine, or image change.
virtual void AllocateReformattedFloatingChannels ()
 Allocate reformatted floating channel memory.
virtual void ClearReformattedFloatingChannels ()
 Clear and free reformatted floating channel memory.
Self::ReturnType EvaluateIncremental (const SplineWarpXform *warp, MetricData &metricData, const DataGrid::RegionType &region)
 Evaluate metric after a local transformation change.
virtual void ContinueMetricStoreReformatted (MetricData &metricData, const size_t rindex, const Vector3D &fvector)
 Continue metric computation and store reformatted floating channels for local recomputation.
virtual void BacktraceMetric (MetricData &metricData, const DataGrid::RegionType &voi)
 Locally undo metric computation.
virtual void UpdateTransformationFixedControlPoints ()
 Update fixed and active control points in transformation.

Static Private Member Functions

static void EvaluateThreadFunction (void *args, const size_t taskIdx, const size_t taskCnt, const size_t threadIdx, const size_t)
 Thread function for gradient computation.
static void EvaluateWithGradientThreadFunction (void *args, const size_t taskIdx, const size_t taskCnt, const size_t threadIdx, const size_t)
 Thread function for gradient computation.

Private Attributes

AffineXform m_InitialAffineTransformation
 Initial affine transformation.
std::vector< std::vector< float > > m_ReformattedFloatingChannels
 Floating channels reformatted under current baseline transformation.
std::vector< Types::Coordinatem_StepScaleVector
 Parameter step scale vector.
std::vector< DataGrid::RegionTypem_VolumeOfInfluenceVector
 Table of volumes of influence per warp control point.
bool m_AdaptiveFixEntropyThreshold
 Flag for entropy vs.
float m_AdaptiveFixThreshFactor
 Threshold for adaptive parameter fixing.
std::list< int > m_FixedCoordinateDimensions
 List of coordinate dimensions (x=0, y=1, z=2) that are fixed during optimization.
float m_JacobianConstraintWeight
 Weight for Jacobian volume preservation constraint.
bool m_UpdateTransformationFixedControlPointsRequired
 Flag whether fixed control points need to be updated.
const size_t m_NumberOfThreads
 Number of parallel threads.
MutexLock m_MetricDataMutex
 Mutex lock for shared metric data object.
std::vector
< SplineWarpXform::SmartPtr
m_ThreadTransformations
 Separate transformations for threaded gradient computation.

Friends

class SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional
 Make functional class with Jacobian intensity correction a friend.

Detailed Description

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
class cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >

Class for spline warp multi-channel registration functional.

Definition at line 62 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.


Member Typedef Documentation

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
typedef Superclass::MetricData cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::MetricData
template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
typedef SplineWarpMultiChannelRegistrationFunctional cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::Self
template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
typedef SmartPointer<Self> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SmartPtr

Member Function Documentation

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::AddFixedCoordinateDimension ( const int  dim ) [inline]

Add a coordinate list of fixed coordinate dimensions.

Definition at line 112 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
virtual void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::ClearAllChannels (  ) [inline, virtual]

Reset channels, clear all images.

Definition at line 130 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::ClearFixedCoordinateDimensions (  ) [inline]

Clear list of fixed coordinate dimensions.

Definition at line 106 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
virtual void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::NewReferenceChannelGeometry (  ) [inline, protected, virtual]

Update all transformation-related data after init, refine, or image change.

Definition at line 144 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetAdaptiveFixEntropyThreshold ( const bool  flag ) [inline]

Set flag for entropy vs.

intensity thresholding.

Definition at line 94 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetAdaptiveFixThreshFactor ( const float  factor ) [inline]

Set adaptive fixing entropy threshold factor.

Definition at line 100 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
virtual void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetInitialAffineTransformation ( const AffineXform initialAffine ) [inline, virtual]

Set initial affine transformation.

Definition at line 88 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetJacobianConstraintWeight ( const float  weight ) [inline]

Set Jacobian volume preservation constraint weight.

Definition at line 118 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.


Friends And Related Function Documentation

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
friend class SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional [friend]

Make functional class with Jacobian intensity correction a friend.

Definition at line 233 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.


Member Data Documentation

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
bool cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_AdaptiveFixEntropyThreshold [private]

Flag for entropy vs.

intensity thresholding

Definition at line 181 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
float cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_AdaptiveFixThreshFactor [private]

Threshold for adaptive parameter fixing.

Definition at line 184 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
std::list<int> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_FixedCoordinateDimensions [private]

List of coordinate dimensions (x=0, y=1, z=2) that are fixed during optimization.

Definition at line 187 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
AffineXform cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_InitialAffineTransformation [private]

Initial affine transformation.

Definition at line 151 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
float cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_JacobianConstraintWeight [private]
template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
MutexLock cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_MetricDataMutex [private]

Mutex lock for shared metric data object.

Definition at line 205 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
const size_t cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_NumberOfThreads [private]

Number of parallel threads.

Definition at line 199 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
std::vector< std::vector<float> > cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_ReformattedFloatingChannels [private]

Floating channels reformatted under current baseline transformation.

Definition at line 157 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
std::vector<Types::Coordinate> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_StepScaleVector [private]
template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
std::vector<SplineWarpXform::SmartPtr> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_ThreadTransformations [private]
template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
bool cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_UpdateTransformationFixedControlPointsRequired [private]

Flag whether fixed control points need to be updated.

Definition at line 196 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.

template<class TMetricFunctional = MultiChannelRMIRegistrationFunctional<>>
std::vector<DataGrid::RegionType> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_VolumeOfInfluenceVector [private]

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