ITK  4.9.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric > Class Template Reference

#include <itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h>

+ Inheritance diagram for itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >:
+ Collaboration diagram for itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >:

Detailed Description

template<typename TDomainPartitioner, typename TImageToImageMetric, typename TCorrelationMetric>
class itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >

Processes points for CorrelationImageToImageMetricv4 GetValueAndDerivative.

Helper class for CorrelationImageToImageMetricv4 To compute the average pixel intensities of the fixed image and the moving image on the sampled points or inside the virtual image region: $ \bar f (CorrelationImageToImageMetricv4::m_AverageFix ) $ $ \bar m (CorrelationImageToImageMetricv4::m_AverageMov ) $.

Definition at line 33 of file itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h.

Classes

struct  CorrelationMetricValueDerivativePerThreadStruct
 

Public Types

typedef Superclass::AssociateType AssociateType
 
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::DerivativeType DerivativeType
 
typedef
Superclass::DerivativeValueType 
DerivativeValueType
 
typedef Superclass::DomainType DomainType
 
typedef
Superclass::FixedImageGradientType 
FixedImageGradientType
 
typedef
Superclass::FixedImagePixelType 
FixedImagePixelType
 
typedef
Superclass::FixedImagePointType 
FixedImagePointType
 
typedef
FixedTransformType::OutputPointType 
FixedOutputPointType
 
typedef
ImageToImageMetricv4Type::FixedTransformType 
FixedTransformType
 
typedef
Superclass::ImageToImageMetricv4Type 
ImageToImageMetricv4Type
 
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
 
typedef Superclass::MeasureType MeasureType
 
typedef
Superclass::MovingImageGradientType 
MovingImageGradientType
 
typedef
Superclass::MovingImagePixelType 
MovingImagePixelType
 
typedef
Superclass::MovingImagePointType 
MovingImagePointType
 
typedef
MovingTransformType::OutputPointType 
MovingOutputPointType
 
typedef
ImageToImageMetricv4Type::MovingTransformType 
MovingTransformType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef SmartPointer< SelfPointer
 
typedef
CorrelationImageToImageMetricv4GetValueAndDerivativeThreader 
Self
 
typedef
ImageToImageMetricv4GetValueAndDerivativeThreader
< TDomainPartitioner,
TImageToImageMetric > 
Superclass
 
typedef
Superclass::VirtualIndexType 
VirtualIndexType
 
typedef
Superclass::VirtualPointType 
VirtualPointType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

virtual void AfterThreadedExecution () override
 
virtual void BeforeThreadedExecution () override
 
 CorrelationImageToImageMetricv4GetValueAndDerivativeThreader ()
 
virtual bool ProcessPoint (const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const FixedImagePointType &mappedFixedPoint, const FixedImagePixelType &mappedFixedPixelValue, const FixedImageGradientType &mappedFixedImageGradient, const MovingImagePointType &mappedMovingPoint, const MovingImagePixelType &mappedMovingPixelValue, const MovingImageGradientType &mappedMovingImageGradient, MeasureType &metricValueReturn, DerivativeType &localDerivativeReturn, const ThreadIdType threadId) const override
 
virtual bool ProcessVirtualPoint (const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId) override
 
virtual ~CorrelationImageToImageMetricv4GetValueAndDerivativeThreader ()
 

Private Member Functions

 CorrelationImageToImageMetricv4GetValueAndDerivativeThreader (const Self &) ITK_DELETE_FUNCTION
 
 itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedCorrelationMetricValueDerivativePerThreadStruct, AlignedCorrelationMetricValueDerivativePerThreadStruct)
 
 itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, CorrelationMetricValueDerivativePerThreadStruct, PaddedCorrelationMetricValueDerivativePerThreadStruct)
 
void operator= (const Self &) ITK_DELETE_FUNCTION
 

Private Attributes

TCorrelationMetric * m_CorrelationAssociate
 
AlignedCorrelationMetricValueDerivativePerThreadStruct * m_CorrelationMetricValueDerivativePerThreadVariables
 

Member Typedef Documentation

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::AssociateType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::AssociateType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef SmartPointer< const Self > itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ConstPointer
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::DerivativeType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::DerivativeType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::DerivativeValueType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::DerivativeValueType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::DomainType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::DomainType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::FixedImageGradientType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::FixedImageGradientType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::FixedImagePixelType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::FixedImagePixelType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::FixedImagePointType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::FixedImagePointType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef FixedTransformType::OutputPointType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::FixedOutputPointType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef ImageToImageMetricv4Type::FixedTransformType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::FixedTransformType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::ImageToImageMetricv4Type itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ImageToImageMetricv4Type
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::InternalComputationValueType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::InternalComputationValueType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::MeasureType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MeasureType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::MovingImageGradientType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MovingImageGradientType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::MovingImagePixelType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MovingImagePixelType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::MovingImagePointType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MovingImagePointType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef MovingTransformType::OutputPointType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MovingOutputPointType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef ImageToImageMetricv4Type::MovingTransformType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::MovingTransformType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::NumberOfParametersType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::NumberOfParametersType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef SmartPointer< Self > itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Pointer
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef CorrelationImageToImageMetricv4GetValueAndDerivativeThreader itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Self

Standard class typedefs.

Definition at line 38 of file itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h.

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef ImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric > itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Superclass
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::VirtualIndexType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::VirtualIndexType
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
typedef Superclass::VirtualPointType itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::VirtualPointType

Constructor & Destructor Documentation

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader ( )
protected
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::~CorrelationImageToImageMetricv4GetValueAndDerivativeThreader ( )
protectedvirtual
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader ( const Self )
private

Member Function Documentation

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual void itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::AfterThreadedExecution ( )
overrideprotectedvirtual

Overload: Collects the results from each thread and sums them. Results are stored in the enclosing class m_Value and m_DerivativeResult. Behavior depends on m_AverageValueAndDerivativeByNumberOfValuePoints, m_NumberOfValidPoints, to average the value sum, and to average derivative sums for global transforms only (i.e. transforms without local support).

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual void itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::BeforeThreadedExecution ( )
overrideprotectedvirtual

Overload: Resize and initialize per thread objects: number of valid points moving transform jacobian cross-correlation specific variables

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual::itk::LightObject::Pointer itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::CreateAnother ( ) const
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual const char* itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::GetNameOfClass ( ) const
virtual
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::itkAlignedTypedef ( ITK_CACHE_LINE_ALIGNMENT  ,
PaddedCorrelationMetricValueDerivativePerThreadStruct  ,
AlignedCorrelationMetricValueDerivativePerThreadStruct   
)
private
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::itkPadStruct ( ITK_CACHE_LINE_ALIGNMENT  ,
CorrelationMetricValueDerivativePerThreadStruct  ,
PaddedCorrelationMetricValueDerivativePerThreadStruct   
)
private
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
static Pointer itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::New ( )
static
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
void itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::operator= ( const Self )
private
template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual bool itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ProcessPoint ( const VirtualIndexType virtualIndex,
const VirtualPointType virtualPoint,
const FixedImagePointType mappedFixedPoint,
const FixedImagePixelType mappedFixedPixelValue,
const FixedImageGradientType mappedFixedImageGradient,
const MovingImagePointType mappedMovingPoint,
const MovingImagePixelType mappedMovingPixelValue,
const MovingImageGradientType mappedMovingImageGradient,
MeasureType metricValueReturn,
DerivativeType localDerivativeReturn,
const ThreadIdType  threadId 
) const
overrideprotectedvirtual

This function computes the local voxel-wise contribution of the metric to the global integral of the metric/derivative.

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
virtual bool itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ProcessVirtualPoint ( const VirtualIndexType virtualIndex,
const VirtualPointType virtualPoint,
const ThreadIdType  threadId 
)
overrideprotectedvirtual

Overload to avoid execution of adding entries to m_MeasurePerThread StorePointDerivativeResult() after this function calls ProcessPoint(). Method called by the threaders to process the given virtual point. This in turn calls TransformAndEvaluateFixedPoint, TransformAndEvaluateMovingPoint, and ProcessPoint.

Member Data Documentation

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
TCorrelationMetric* itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::m_CorrelationAssociate
private

Internal pointer to the metric object in use by this threader. This will avoid costly dynamic casting in tight loops.

Definition at line 147 of file itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.h.

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
AlignedCorrelationMetricValueDerivativePerThreadStruct* itk::CorrelationImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::m_CorrelationMetricValueDerivativePerThreadVariables
mutableprivate

The documentation for this class was generated from the following file: