Class for spline warp multi-channel registration functional. More...
#include <cmtkSplineWarpMultiChannelRegistrationFunctional.h>
Classes | |
class | EvaluateGradientThreadParameters |
Parameters for threaded gradient computation. More... | |
Public Types | |
typedef SplineWarpMultiChannelRegistrationFunctional | Self |
This class. | |
typedef SmartPointer< Self > | SmartPtr |
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 ®ion) |
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::Coordinate > | m_StepScaleVector |
Parameter step scale vector. | |
std::vector< DataGrid::RegionType > | m_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. |
Class for spline warp multi-channel registration functional.
Definition at line 62 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
typedef Superclass::MetricData cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::MetricData |
Metric data subclass.
Reimplemented in cmtk::SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional< TMetricFunctional >.
Definition at line 77 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
typedef SplineWarpMultiChannelRegistrationFunctional cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::Self |
This class.
Reimplemented from cmtk::TemplateMultiChannelRegistrationFunctional< SplineWarpXform, TMetricFunctional >.
Reimplemented in cmtk::SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional< TMetricFunctional >.
Definition at line 68 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
typedef SmartPointer<Self> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SmartPtr |
Smart pointer.
Reimplemented from cmtk::TemplateMultiChannelRegistrationFunctional< SplineWarpXform, TMetricFunctional >.
Reimplemented in cmtk::SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional< TMetricFunctional >.
Definition at line 71 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
typedef TemplateMultiChannelRegistrationFunctional<SplineWarpXform, TMetricFunctional > cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::Superclass |
This class.
Reimplemented from cmtk::TemplateMultiChannelRegistrationFunctional< SplineWarpXform, TMetricFunctional >.
Reimplemented in cmtk::SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional< TMetricFunctional >.
Definition at line 74 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
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.
virtual void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::ClearAllChannels | ( | ) | [inline, virtual] |
Reset channels, clear all images.
Definition at line 130 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::ClearFixedCoordinateDimensions | ( | ) | [inline] |
Clear list of fixed coordinate dimensions.
Definition at line 106 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
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.
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetAdaptiveFixEntropyThreshold | ( | const bool | flag ) | [inline] |
Set flag for entropy vs.
intensity thresholding.
Definition at line 94 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetAdaptiveFixThreshFactor | ( | const float | factor ) | [inline] |
Set adaptive fixing entropy threshold factor.
Definition at line 100 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
virtual void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetInitialAffineTransformation | ( | const AffineXform & | initialAffine ) | [inline, virtual] |
Set initial affine transformation.
Definition at line 88 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
void cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::SetJacobianConstraintWeight | ( | const float | weight ) | [inline] |
Set Jacobian volume preservation constraint weight.
Definition at line 118 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
friend class SplineWarpMultiChannelIntensityCorrectionRegistrationFunctional [friend] |
Make functional class with Jacobian intensity correction a friend.
Definition at line 233 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
bool cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_AdaptiveFixEntropyThreshold [private] |
Flag for entropy vs.
intensity thresholding
Definition at line 181 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
float cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_AdaptiveFixThreshFactor [private] |
Threshold for adaptive parameter fixing.
Definition at line 184 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
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.
AffineXform cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_InitialAffineTransformation [private] |
Initial affine transformation.
Definition at line 151 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
float cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_JacobianConstraintWeight [private] |
Weight for Jacobian volume preservation constraint.
Definition at line 190 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
Referenced by cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::EvaluateWithGradientThreadFunction().
MutexLock cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_MetricDataMutex [private] |
Mutex lock for shared metric data object.
Definition at line 205 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
const size_t cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_NumberOfThreads [private] |
Number of parallel threads.
Definition at line 199 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
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.
std::vector<Types::Coordinate> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_StepScaleVector [private] |
Parameter step scale vector.
Definition at line 175 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
Referenced by cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::EvaluateWithGradientThreadFunction().
std::vector<SplineWarpXform::SmartPtr> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_ThreadTransformations [private] |
Separate transformations for threaded gradient computation.
Definition at line 208 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
Referenced by cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::EvaluateWithGradientThreadFunction().
bool cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_UpdateTransformationFixedControlPointsRequired [private] |
Flag whether fixed control points need to be updated.
Definition at line 196 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
std::vector<DataGrid::RegionType> cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::m_VolumeOfInfluenceVector [private] |
Table of volumes of influence per warp control point.
Definition at line 178 of file cmtkSplineWarpMultiChannelRegistrationFunctional.h.
Referenced by cmtk::SplineWarpMultiChannelRegistrationFunctional< TMetricFunctional >::EvaluateWithGradientThreadFunction().