ITK  5.2.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric > Class Template Reference

#include <itkJointHistogramMutualInformationGetValueAndDerivativeThreader.h>

+ Inheritance diagram for itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >:
+ Collaboration diagram for itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >:

Classes

struct  JointHistogramMIPerThreadStruct
 

Public Types

using AssociateType = typename Superclass::AssociateType
 
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = typename Superclass::DerivativeType
 
using DerivativeValueType = typename Superclass::DerivativeValueType
 
using DomainType = typename Superclass::DomainType
 
using FixedImageGradientType = typename Superclass::FixedImageGradientType
 
using FixedImagePixelType = typename Superclass::FixedImagePixelType
 
using FixedImagePointType = typename Superclass::FixedImagePointType
 
using InternalComputationValueType = typename JointHistogramMetricType::InternalComputationValueType
 
using JacobianType = typename Superclass::JacobianType
 
using JointHistogramMetricType = TJointHistogramMetric
 
using JointPDFInterpolatorPointer = typename JointHistogramMetricType::JointPDFInterpolatorPointer
 
using JointPDFInterpolatorType = typename JointHistogramMetricType::JointPDFInterpolatorType
 
using JointPDFPointType = typename JointPDFType::PointType
 
using JointPDFType = typename JointHistogramMetricType::JointPDFType
 
using JointPDFValueType = typename JointHistogramMetricType::JointPDFValueType
 
using MarginalPDFInterpolatorPointer = typename JointHistogramMetricType::MarginalPDFInterpolatorPointer
 
using MarginalPDFInterpolatorType = typename JointHistogramMetricType::MarginalPDFInterpolatorType
 
using MarginalPDFPointType = typename MarginalPDFType::PointType
 
using MarginalPDFType = typename JointHistogramMetricType::MarginalPDFType
 
using MeasureType = typename Superclass::MeasureType
 
using MovingImageGradientType = typename Superclass::MovingImageGradientType
 
using MovingImagePixelType = typename Superclass::MovingImagePixelType
 
using MovingImagePointType = typename Superclass::MovingImagePointType
 
using NumberOfParametersType = typename JointHistogramMetricType::NumberOfParametersType
 
using Pointer = SmartPointer< Self >
 
using Self = JointHistogramMutualInformationGetValueAndDerivativeThreader
 
using Superclass = ImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric >
 
using VirtualIndexType = typename Superclass::VirtualIndexType
 
using VirtualPointType = typename Superclass::VirtualPointType
 

Public Member Functions

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

Static Public Member Functions

static Pointer New ()
 

Protected Types

using JointHistogramType = Image< SizeValueType, 2 >
 

Protected Member Functions

void AfterThreadedExecution () override
 
void BeforeThreadedExecution () override
 
InternalComputationValueType ComputeFixedImageMarginalPDFDerivative (const MarginalPDFPointType &margPDFpoint, const ThreadIdType threadId) const
 
InternalComputationValueType ComputeJointPDFDerivative (const JointPDFPointType &jointPDFpoint, const ThreadIdType threadId, const SizeValueType ind) const
 
InternalComputationValueType ComputeMovingImageMarginalPDFDerivative (const MarginalPDFPointType &margPDFpoint, const ThreadIdType threadId) const
 
 itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedJointHistogramMIPerThreadStruct, AlignedJointHistogramMIPerThreadStruct)
 
 itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, JointHistogramMIPerThreadStruct, PaddedJointHistogramMIPerThreadStruct)
 
 JointHistogramMutualInformationGetValueAndDerivativeThreader ()
 
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
 
 ~JointHistogramMutualInformationGetValueAndDerivativeThreader () override
 

Protected Attributes

AlignedJointHistogramMIPerThreadStruct * m_JointHistogramMIPerThreadVariables
 

Private Attributes

TJointHistogramMetric * m_JointAssociate
 

Detailed Description

template<typename TDomainPartitioner, typename TImageToImageMetric, typename TJointHistogramMetric>
class itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >

Processes points for JointHistogramMutualInformationImageToImageMetricv4 GetValueAndDerivative().

Definition at line 34 of file itkJointHistogramMutualInformationGetValueAndDerivativeThreader.h.

Member Typedef Documentation

◆ AssociateType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::AssociateType = typename Superclass::AssociateType

◆ ConstPointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::ConstPointer = SmartPointer<const Self>

◆ DerivativeType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::DerivativeType = typename Superclass::DerivativeType

◆ DerivativeValueType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::DerivativeValueType = typename Superclass::DerivativeValueType

◆ DomainType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::DomainType = typename Superclass::DomainType

◆ FixedImageGradientType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::FixedImageGradientType = typename Superclass::FixedImageGradientType

◆ FixedImagePixelType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::FixedImagePixelType = typename Superclass::FixedImagePixelType

◆ FixedImagePointType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::FixedImagePointType = typename Superclass::FixedImagePointType

◆ InternalComputationValueType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::InternalComputationValueType = typename JointHistogramMetricType::InternalComputationValueType

◆ JacobianType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JacobianType = typename Superclass::JacobianType

◆ JointHistogramMetricType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointHistogramMetricType = TJointHistogramMetric

◆ JointHistogramType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointHistogramType = Image<SizeValueType, 2>
protected

◆ JointPDFInterpolatorPointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointPDFInterpolatorPointer = typename JointHistogramMetricType::JointPDFInterpolatorPointer

◆ JointPDFInterpolatorType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointPDFInterpolatorType = typename JointHistogramMetricType::JointPDFInterpolatorType

◆ JointPDFPointType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointPDFPointType = typename JointPDFType::PointType

◆ JointPDFType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointPDFType = typename JointHistogramMetricType::JointPDFType

◆ JointPDFValueType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointPDFValueType = typename JointHistogramMetricType::JointPDFValueType

◆ MarginalPDFInterpolatorPointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MarginalPDFInterpolatorPointer = typename JointHistogramMetricType::MarginalPDFInterpolatorPointer

◆ MarginalPDFInterpolatorType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MarginalPDFInterpolatorType = typename JointHistogramMetricType::MarginalPDFInterpolatorType

◆ MarginalPDFPointType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MarginalPDFPointType = typename MarginalPDFType::PointType

◆ MarginalPDFType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MarginalPDFType = typename JointHistogramMetricType::MarginalPDFType

◆ MeasureType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MeasureType = typename Superclass::MeasureType

◆ MovingImageGradientType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MovingImageGradientType = typename Superclass::MovingImageGradientType

◆ MovingImagePixelType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MovingImagePixelType = typename Superclass::MovingImagePixelType

◆ MovingImagePointType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::MovingImagePointType = typename Superclass::MovingImagePointType

◆ NumberOfParametersType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::NumberOfParametersType = typename JointHistogramMetricType::NumberOfParametersType

◆ Pointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::Pointer = SmartPointer<Self>

◆ Self

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::Self = JointHistogramMutualInformationGetValueAndDerivativeThreader

Standard class type aliases.

Definition at line 41 of file itkJointHistogramMutualInformationGetValueAndDerivativeThreader.h.

◆ Superclass

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::Superclass = ImageToImageMetricv4GetValueAndDerivativeThreader<TDomainPartitioner, TImageToImageMetric>

◆ VirtualIndexType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::VirtualIndexType = typename Superclass::VirtualIndexType

◆ VirtualPointType

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
using itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::VirtualPointType = typename Superclass::VirtualPointType

Constructor & Destructor Documentation

◆ JointHistogramMutualInformationGetValueAndDerivativeThreader()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::JointHistogramMutualInformationGetValueAndDerivativeThreader ( )
protected

◆ ~JointHistogramMutualInformationGetValueAndDerivativeThreader()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::~JointHistogramMutualInformationGetValueAndDerivativeThreader ( )
overrideprotected

Member Function Documentation

◆ AfterThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
void itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::AfterThreadedExecution ( )
overrideprotected

◆ BeforeThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
void itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::BeforeThreadedExecution ( )
overrideprotected

◆ ComputeFixedImageMarginalPDFDerivative()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
InternalComputationValueType itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::ComputeFixedImageMarginalPDFDerivative ( const MarginalPDFPointType margPDFpoint,
const ThreadIdType  threadId 
) const
inlineprotected

◆ ComputeJointPDFDerivative()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
InternalComputationValueType itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::ComputeJointPDFDerivative ( const JointPDFPointType jointPDFpoint,
const ThreadIdType  threadId,
const SizeValueType  ind 
) const
inlineprotected

◆ ComputeMovingImageMarginalPDFDerivative()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
InternalComputationValueType itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::ComputeMovingImageMarginalPDFDerivative ( const MarginalPDFPointType margPDFpoint,
const ThreadIdType  threadId 
) const
inlineprotected

◆ CreateAnother()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
virtual::itk::LightObject::Pointer itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::CreateAnother ( ) const

◆ GetNameOfClass()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
virtual const char* itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::GetNameOfClass ( ) const
virtual

◆ itkAlignedTypedef()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::itkAlignedTypedef ( ITK_CACHE_LINE_ALIGNMENT  ,
PaddedJointHistogramMIPerThreadStruct  ,
AlignedJointHistogramMIPerThreadStruct   
)
protected

◆ itkPadStruct()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::itkPadStruct ( ITK_CACHE_LINE_ALIGNMENT  ,
JointHistogramMIPerThreadStruct  ,
PaddedJointHistogramMIPerThreadStruct   
)
protected

◆ New()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
static Pointer itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::New ( )
static

◆ ProcessPoint()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
bool itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::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
overrideprotected

Member Data Documentation

◆ m_JointAssociate

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
TJointHistogramMetric* itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::m_JointAssociate
private

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

Definition at line 130 of file itkJointHistogramMutualInformationGetValueAndDerivativeThreader.h.

◆ m_JointHistogramMIPerThreadVariables

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TJointHistogramMetric >
AlignedJointHistogramMIPerThreadStruct* itk::JointHistogramMutualInformationGetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric, TJointHistogramMetric >::m_JointHistogramMIPerThreadVariables
protected

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