![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkParzenWindowMutualInformationImageToImageMetric.h>
Computes the mutual information between two images to be registered using the method of Mattes et al.
ParzenWindowMutualInformationImageToImageMetric computes the mutual information between a fixed and moving image to be registered.
The calculations are based on the method of Mattes et al. [1,2], where the probability density distribution are estimated using Parzen histograms. Once the PDFs have been constructed, the mutual information is obtained by double summing over the discrete PDF values.
Construction of the PDFs is implemented in the superclass ParzenWindowHistogramImageToImageMetric.
This implementation of the MattesMutualInformation is based on the AdvancedImageToImageMetric, which means that:
Notes:
References:
[1] "Nonrigid multimodality image registration"
D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank
Medical Imaging 2001: Image Processing, 2001, pp. 1609-1620.
[2] "PET-CT Image Registration in the Chest Using Free-form Deformations"
D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank
IEEE Transactions in Medical Imaging. To Appear.
[3] "Optimization of Mutual Information for MultiResolution Image
Registration"
P. Thevenaz and M. Unser
IEEE Transactions in Image Processing, 9(12) December 2000.
Definition at line 75 of file itkParzenWindowMutualInformationImageToImageMetric.h.
Data Structures | |
struct | ParzenWindowMutualInformationMultiThreaderParameterType |
Public Types | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CoordinateRepresentationType | CoordinateRepresentationType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::DerivativeValueType | DerivativeValueType |
typedef Superclass::FixedImageConstPointer | FixedImageConstPointer |
typedef Superclass::FixedImageLimiterOutputType | FixedImageLimiterOutputType |
typedef Superclass::FixedImageLimiterType | FixedImageLimiterType |
typedef Superclass::FixedImageMaskPointer | FixedImageMaskPointer |
typedef Superclass::FixedImageMaskType | FixedImageMaskType |
typedef Superclass::FixedImagePixelType | FixedImagePixelType |
typedef Superclass::FixedImageRegionType | FixedImageRegionType |
typedef Superclass::FixedImageType | FixedImageType |
typedef Superclass::GradientImageFilterPointer | GradientImageFilterPointer |
typedef Superclass::GradientImageFilterType | GradientImageFilterType |
typedef Superclass::GradientImagePointer | GradientImagePointer |
typedef Superclass::GradientImageType | GradientImageType |
typedef Superclass::GradientPixelType | GradientPixelType |
typedef Superclass::ImageSampleContainerPointer | ImageSampleContainerPointer |
typedef Superclass::ImageSampleContainerType | ImageSampleContainerType |
typedef Superclass::ImageSamplerPointer | ImageSamplerPointer |
typedef Superclass::ImageSamplerType | ImageSamplerType |
typedef Superclass::InputPointType | InputPointType |
typedef Superclass::InterpolatorPointer | InterpolatorPointer |
typedef Superclass::InterpolatorType | InterpolatorType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::MovingImageConstPointer | MovingImageConstPointer |
typedef Superclass::MovingImageDerivativeScalesType | MovingImageDerivativeScalesType |
typedef Superclass::MovingImageLimiterOutputType | MovingImageLimiterOutputType |
typedef Superclass::MovingImageLimiterType | MovingImageLimiterType |
typedef Superclass::MovingImageMaskPointer | MovingImageMaskPointer |
typedef Superclass::MovingImageMaskType | MovingImageMaskType |
typedef Superclass::MovingImagePixelType | MovingImagePixelType |
typedef Superclass::MovingImageRegionType | MovingImageRegionType |
typedef Superclass::MovingImageType | MovingImageType |
typedef Superclass::NumberOfParametersType | NumberOfParametersType |
typedef Superclass::OutputPointType | OutputPointType |
typedef Superclass::ParametersType | ParametersType |
typedef SmartPointer< Self > | Pointer |
typedef Superclass::RealType | RealType |
typedef ParzenWindowMutualInformationImageToImageMetric | Self |
typedef ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage > | Superclass |
typedef Superclass::ThreaderType | ThreaderType |
typedef Superclass::ThreadInfoType | ThreadInfoType |
typedef Superclass::TransformJacobianType | TransformJacobianType |
typedef Superclass::TransformParametersType | TransformParametersType |
typedef Superclass::TransformPointer | TransformPointer |
typedef Superclass::TransformType | TransformType |
![]() | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CoordinateRepresentationType | CoordinateRepresentationType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::DerivativeValueType | DerivativeValueType |
typedef Superclass::FixedImageConstPointer | FixedImageConstPointer |
typedef Superclass::FixedImageLimiterOutputType | FixedImageLimiterOutputType |
typedef Superclass::FixedImageLimiterType | FixedImageLimiterType |
typedef Superclass::FixedImageMaskPointer | FixedImageMaskPointer |
typedef Superclass::FixedImageMaskType | FixedImageMaskType |
typedef Superclass::FixedImagePixelType | FixedImagePixelType |
typedef Superclass::FixedImageRegionType | FixedImageRegionType |
typedef Superclass::FixedImageType | FixedImageType |
typedef Superclass::GradientImageFilterPointer | GradientImageFilterPointer |
typedef Superclass::GradientImageFilterType | GradientImageFilterType |
typedef Superclass::GradientImagePointer | GradientImagePointer |
typedef Superclass::GradientImageType | GradientImageType |
typedef Superclass::GradientPixelType | GradientPixelType |
typedef Superclass::ImageSampleContainerPointer | ImageSampleContainerPointer |
typedef Superclass::ImageSampleContainerType | ImageSampleContainerType |
typedef Superclass::ImageSamplerPointer | ImageSamplerPointer |
typedef Superclass::ImageSamplerType | ImageSamplerType |
typedef Superclass::InputPointType | InputPointType |
typedef Superclass::InterpolatorPointer | InterpolatorPointer |
typedef Superclass::InterpolatorType | InterpolatorType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::MovingImageConstPointer | MovingImageConstPointer |
typedef Superclass::MovingImageDerivativeScalesType | MovingImageDerivativeScalesType |
typedef Superclass::MovingImageLimiterOutputType | MovingImageLimiterOutputType |
typedef Superclass::MovingImageLimiterType | MovingImageLimiterType |
typedef Superclass::MovingImageMaskPointer | MovingImageMaskPointer |
typedef Superclass::MovingImageMaskType | MovingImageMaskType |
typedef Superclass::MovingImagePixelType | MovingImagePixelType |
typedef Superclass::MovingImageRegionType | MovingImageRegionType |
typedef Superclass::MovingImageType | MovingImageType |
typedef Superclass::OutputPointType | OutputPointType |
typedef Superclass::ParametersType | ParametersType |
typedef SmartPointer< Self > | Pointer |
typedef Superclass::RealType | RealType |
typedef ParzenWindowHistogramImageToImageMetric | Self |
typedef AdvancedImageToImageMetric< TFixedImage, TMovingImage > | Superclass |
typedef Superclass::ThreaderType | ThreaderType |
typedef Superclass::ThreadInfoType | ThreadInfoType |
typedef Superclass::TransformJacobianType | TransformJacobianType |
typedef Superclass::TransformParametersType | TransformParametersType |
typedef Superclass::TransformPointer | TransformPointer |
typedef Superclass::TransformType | TransformType |
![]() | |
typedef AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > | AdvancedTransformType |
typedef BSplineOrder1TransformType::Pointer | BSplineOrder1TransformPointer |
typedef AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 > | BSplineOrder1TransformType |
typedef BSplineOrder2TransformType::Pointer | BSplineOrder2TransformPointer |
typedef AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 > | BSplineOrder2TransformType |
typedef BSplineOrder3TransformType::Pointer | BSplineOrder3TransformPointer |
typedef AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > | BSplineOrder3TransformType |
typedef AdvancedCombinationTransform< ScalarType, FixedImageDimension > | CombinationTransformType |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CoordinateRepresentationType | CoordinateRepresentationType |
typedef Superclass::DerivativeType | DerivativeType |
typedef DerivativeType::ValueType | DerivativeValueType |
typedef Superclass::FixedImageConstPointer | FixedImageConstPointer |
typedef FixedImageLimiterType::OutputType | FixedImageLimiterOutputType |
typedef FixedImageLimiterType::Pointer | FixedImageLimiterPointer |
typedef LimiterFunctionBase< RealType, FixedImageDimension > | FixedImageLimiterType |
typedef Superclass::FixedImageMaskPointer | FixedImageMaskPointer |
typedef ImageMaskSpatialObject< itkGetStaticConstMacro(FixedImageDimension) > | FixedImageMaskSpatialObject2Type |
typedef Superclass::FixedImageMaskType | FixedImageMaskType |
typedef FixedImageType::PixelType | FixedImagePixelType |
typedef FixedImageType::Pointer | FixedImagePointer |
typedef Superclass::FixedImageRegionType | FixedImageRegionType |
typedef Superclass::FixedImageType | FixedImageType |
typedef Superclass::GradientImageFilterPointer | GradientImageFilterPointer |
typedef Superclass::GradientImageFilterType | GradientImageFilterType |
typedef Superclass::GradientImagePointer | GradientImagePointer |
typedef Superclass::GradientImageType | GradientImageType |
typedef Superclass::GradientPixelType | GradientPixelType |
typedef vnl_sparse_matrix< HessianValueType > | HessianType |
typedef DerivativeType::ValueType | HessianValueType |
typedef ImageSamplerType::OutputVectorContainerPointer | ImageSampleContainerPointer |
typedef ImageSamplerType::OutputVectorContainerType | ImageSampleContainerType |
typedef ImageSamplerType::Pointer | ImageSamplerPointer |
typedef ImageSamplerBase< FixedImageType > | ImageSamplerType |
typedef Superclass::InputPointType | InputPointType |
typedef Superclass::InterpolatorPointer | InterpolatorPointer |
typedef Superclass::InterpolatorType | InterpolatorType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::MovingImageConstPointer | MovingImageConstPointer |
typedef FixedArray< double, Self::MovingImageDimension > | MovingImageDerivativeScalesType |
typedef MovingImageLimiterType::OutputType | MovingImageLimiterOutputType |
typedef MovingImageLimiterType::Pointer | MovingImageLimiterPointer |
typedef LimiterFunctionBase< RealType, MovingImageDimension > | MovingImageLimiterType |
typedef Superclass::MovingImageMaskPointer | MovingImageMaskPointer |
typedef ImageMaskSpatialObject< itkGetStaticConstMacro(MovingImageDimension) > | MovingImageMaskSpatialObject2Type |
typedef Superclass::MovingImageMaskType | MovingImageMaskType |
typedef Superclass::MovingImagePixelType | MovingImagePixelType |
typedef MovingImageType::Pointer | MovingImagePointer |
typedef MovingImageType::RegionType | MovingImageRegionType |
typedef Superclass::MovingImageType | MovingImageType |
typedef AdvancedTransformType::NumberOfParametersType | NumberOfParametersType |
typedef Superclass::OutputPointType | OutputPointType |
typedef Superclass::ParametersType | ParametersType |
typedef SmartPointer< Self > | Pointer |
typedef Superclass::RealType | RealType |
typedef TransformType::ScalarType | ScalarType |
typedef AdvancedImageToImageMetric | Self |
typedef ImageToImageMetric< TFixedImage, TMovingImage > | Superclass |
typedef itk::PlatformMultiThreader | ThreaderType |
typedef ThreaderType::WorkUnitInfo | ThreadInfoType |
typedef Superclass::TransformJacobianType | TransformJacobianType |
typedef Superclass::TransformParametersType | TransformParametersType |
typedef Superclass::TransformPointer | TransformPointer |
typedef Superclass::TransformType | TransformType |
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
typedef Superclass::BSplineInterpolatorType | BSplineInterpolatorType |
typedef Superclass::CentralDifferenceGradientFilterType | CentralDifferenceGradientFilterType |
typedef Superclass::FixedImageIndexType | FixedImageIndexType |
typedef Superclass::FixedImageIndexValueType | FixedImageIndexValueType |
typedef Superclass::FixedImagePointType | FixedImagePointType |
typedef Superclass::IncrementalMarginalPDFType | IncrementalMarginalPDFType |
typedef Superclass::JointPDFDerivativesIndexType | JointPDFDerivativesIndexType |
typedef Superclass::JointPDFDerivativesRegionType | JointPDFDerivativesRegionType |
typedef Superclass::JointPDFDerivativesSizeType | JointPDFDerivativesSizeType |
typedef Superclass::JointPDFDerivativesType | JointPDFDerivativesType |
typedef Superclass::JointPDFIndexType | JointPDFIndexType |
typedef Superclass::JointPDFRegionType | JointPDFRegionType |
typedef Superclass::JointPDFSizeType | JointPDFSizeType |
typedef Superclass::JointPDFType | JointPDFType |
typedef Superclass::KernelFunctionType | KernelFunctionType |
typedef Superclass::MarginalPDFType | MarginalPDFType |
typedef Superclass::MovingImageContinuousIndexType | MovingImageContinuousIndexType |
typedef Superclass::MovingImageDerivativeType | MovingImageDerivativeType |
typedef Superclass::MovingImageIndexType | MovingImageIndexType |
typedef Superclass::MovingImagePointType | MovingImagePointType |
typedef Superclass::NonZeroJacobianIndicesType | NonZeroJacobianIndicesType |
typedef Superclass::ParzenValueContainerType | ParzenValueContainerType |
typedef Superclass::PDFDerivativeValueType | PDFDerivativeValueType |
typedef Superclass::PDFValueType | PDFValueType |
![]() | |
typedef Superclass::BSplineInterpolatorType | BSplineInterpolatorType |
typedef Superclass::CentralDifferenceGradientFilterType | CentralDifferenceGradientFilterType |
typedef Superclass::FixedImageIndexType | FixedImageIndexType |
typedef Superclass::FixedImageIndexValueType | FixedImageIndexValueType |
typedef Superclass::FixedImagePointType | FixedImagePointType |
typedef IncrementalMarginalPDFType::IndexType | IncrementalMarginalPDFIndexType |
typedef IncrementalMarginalPDFType::Pointer | IncrementalMarginalPDFPointer |
typedef IncrementalMarginalPDFType::RegionType | IncrementalMarginalPDFRegionType |
typedef IncrementalMarginalPDFType::SizeType | IncrementalMarginalPDFSizeType |
typedef Image< PDFValueType, 2 > | IncrementalMarginalPDFType |
typedef JointPDFDerivativesType::IndexType | JointPDFDerivativesIndexType |
typedef JointPDFDerivativesType::Pointer | JointPDFDerivativesPointer |
typedef JointPDFDerivativesType::RegionType | JointPDFDerivativesRegionType |
typedef JointPDFDerivativesType::SizeType | JointPDFDerivativesSizeType |
typedef Image< PDFDerivativeValueType, 3 > | JointPDFDerivativesType |
typedef JointPDFType::IndexType | JointPDFIndexType |
typedef JointPDFType::Pointer | JointPDFPointer |
typedef JointPDFType::RegionType | JointPDFRegionType |
typedef JointPDFType::SizeType | JointPDFSizeType |
typedef Image< PDFValueType, 2 > | JointPDFType |
typedef KernelFunctionType::Pointer | KernelFunctionPointer |
typedef KernelFunctionBase2< PDFValueType > | KernelFunctionType |
typedef Array< PDFValueType > | MarginalPDFType |
typedef Superclass::MovingImageContinuousIndexType | MovingImageContinuousIndexType |
typedef Superclass::MovingImageDerivativeType | MovingImageDerivativeType |
typedef Superclass::MovingImageIndexType | MovingImageIndexType |
typedef Superclass::MovingImagePointType | MovingImagePointType |
typedef Superclass::NonZeroJacobianIndicesType | NonZeroJacobianIndicesType |
typedef FixedImageType::OffsetValueType | OffsetValueType |
typedef Array< PDFValueType > | ParzenValueContainerType |
typedef float | PDFDerivativeValueType |
typedef double | PDFValueType |
![]() | |
typedef BSplineInterpolatorFloatType::Pointer | BSplineInterpolatorFloatPointer |
typedef BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, float > | BSplineInterpolatorFloatType |
typedef BSplineInterpolatorType::Pointer | BSplineInterpolatorPointer |
typedef BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > | BSplineInterpolatorType |
typedef CentralDifferenceGradientFilterType::Pointer | CentralDifferenceGradientFilterPointer |
typedef GradientImageFilter< MovingImageType, RealType, RealType > | CentralDifferenceGradientFilterType |
typedef FixedImageType::IndexType | FixedImageIndexType |
typedef FixedImageIndexType::IndexValueType | FixedImageIndexValueType |
typedef TransformType::InputPointType | FixedImagePointType |
typedef LinearInterpolatorType::Pointer | LinearInterpolatorPointer |
typedef AdvancedLinearInterpolateImageFunction< MovingImageType, CoordinateRepresentationType > | LinearInterpolatorType |
typedef InterpolatorType::ContinuousIndexType | MovingImageContinuousIndexType |
typedef BSplineInterpolatorType::CovariantVectorType | MovingImageDerivativeType |
typedef MovingImageType::IndexType | MovingImageIndexType |
typedef TransformType::OutputPointType | MovingImagePointType |
typedef AdvancedTransformType::NonZeroJacobianIndicesType | NonZeroJacobianIndicesType |
typedef ReducedBSplineInterpolatorType::Pointer | ReducedBSplineInterpolatorPointer |
typedef ReducedDimensionBSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > | ReducedBSplineInterpolatorType |
Protected Member Functions | |
void | AfterThreadedComputeDerivativeLowMemory (DerivativeType &derivative) const |
virtual void | ComputeJacobianPreconditioner (const TransformJacobianType &jac, const NonZeroJacobianIndicesType &nzji, DerivativeType &preconditioner, DerivativeType &divisor) const |
void | GetValueAndAnalyticDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override |
virtual void | GetValueAndAnalyticDerivativeLowMemory (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const |
void | GetValueAndFiniteDifferenceDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override |
void | InitializeHistograms (void) override |
void | LaunchComputeDerivativeLowMemoryThreaderCallback (void) const |
ParzenWindowMutualInformationImageToImageMetric () | |
void | ThreadedComputeDerivativeLowMemory (ThreadIdType threadId) |
~ParzenWindowMutualInformationImageToImageMetric () override | |
![]() | |
void | AfterThreadedComputePDFs (void) const |
virtual void | ComputeIncrementalMarginalPDFs (const JointPDFDerivativesType *incrementalPDF, IncrementalMarginalPDFType *fixedIncrementalMarginalPDF, IncrementalMarginalPDFType *movingIncrementalMarginalPDF) const |
virtual void | ComputeMarginalPDF (const JointPDFType *jointPDF, MarginalPDFType &marginalPDF, const unsigned int &direction) const |
virtual void | ComputePDFs (const ParametersType ¶meters) const |
virtual void | ComputePDFsAndIncrementalPDFs (const ParametersType ¶meters) const |
virtual void | ComputePDFsAndPDFDerivatives (const ParametersType ¶meters) const |
virtual void | ComputePDFsSingleThreaded (const ParametersType ¶meters) const |
void | EvaluateParzenValues (double parzenWindowTerm, OffsetValueType parzenWindowIndex, const KernelFunctionType *kernel, ParzenValueContainerType &parzenValues) const |
virtual void | GetValueAndAnalyticDerivative (const ParametersType &, MeasureType &, DerivativeType &) const |
virtual void | GetValueAndFiniteDifferenceDerivative (const ParametersType &, MeasureType &, DerivativeType &) const |
virtual void | InitializeHistograms (void) |
virtual void | InitializeKernels (void) |
void | InitializeThreadingParameters (void) const override |
itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct, AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct) | |
itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, ParzenWindowHistogramGetValueAndDerivativePerThreadStruct, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct) | |
void | LaunchComputePDFsThreaderCallback (void) const |
virtual void | NormalizeJointPDF (JointPDFType *pdf, const double &factor) const |
virtual void | NormalizeJointPDFDerivatives (JointPDFDerivativesType *pdf, const double &factor) const |
ParzenWindowHistogramImageToImageMetric () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
void | ThreadedComputePDFs (ThreadIdType threadId) |
virtual void | UpdateJointPDFAndDerivatives (const RealType &fixedImageValue, const RealType &movingImageValue, const DerivativeType *imageJacobian, const NonZeroJacobianIndicesType *nzji, JointPDFType *jointPDF) const |
virtual void | UpdateJointPDFAndIncrementalPDFs (RealType fixedImageValue, RealType movingImageValue, RealType movingMaskValue, const DerivativeType &movingImageValuesRight, const DerivativeType &movingImageValuesLeft, const DerivativeType &movingMaskValuesRight, const DerivativeType &movingMaskValuesLeft, const NonZeroJacobianIndicesType &nzji) const |
void | UpdateJointPDFDerivatives (const JointPDFIndexType &pdfIndex, double factor, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji) const |
~ParzenWindowHistogramImageToImageMetric () override | |
![]() | |
AdvancedImageToImageMetric () | |
virtual void | AfterThreadedGetValue (MeasureType &value) const |
virtual void | AfterThreadedGetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const |
virtual void | CheckForAdvancedTransform (void) |
virtual void | CheckForBSplineInterpolator (void) |
virtual void | CheckForBSplineTransform (void) const |
virtual void | CheckNumberOfSamples (unsigned long wanted, unsigned long found) const |
virtual bool | EvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const |
virtual bool | EvaluateTransformJacobian (const FixedImagePointType &fixedImagePoint, TransformJacobianType &jacobian, NonZeroJacobianIndicesType &nzji) const |
virtual void | EvaluateTransformJacobianInnerProduct (const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const |
virtual void | InitializeImageSampler (void) |
virtual void | InitializeLimiters (void) |
virtual void | InitializeThreadingParameters (void) const |
virtual bool | IsInsideMovingMask (const MovingImagePointType &point) const |
itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct) | |
itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValuePerThreadStruct, AlignedGetValuePerThreadStruct) | |
itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct) | |
itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValuePerThreadStruct, PaddedGetValuePerThreadStruct) | |
void | LaunchGetValueAndDerivativeThreaderCallback (void) const |
void | LaunchGetValueThreaderCallback (void) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetUseFixedImageLimiter (bool _arg) |
virtual void | SetUseImageSampler (bool _arg) |
virtual void | SetUseMovingImageLimiter (bool _arg) |
virtual void | ThreadedGetValue (ThreadIdType threadID) |
virtual void | ThreadedGetValueAndDerivative (ThreadIdType threadID) |
virtual bool | TransformPoint (const FixedImagePointType &fixedImagePoint, MovingImagePointType &mappedPoint) const |
~AdvancedImageToImageMetric () override | |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputeDerivativeLowMemoryThreaderCallback (void *arg) |
![]() | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputePDFsThreaderCallback (void *arg) |
![]() | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | AccumulateDerivativesThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueThreaderCallback (void *arg) |
Private Types | |
typedef Array2D< PRatioType > | PRatioArrayType |
typedef double | PRatioType |
Private Member Functions | |
void | ComputeDerivativeLowMemory (DerivativeType &derivative) const |
void | ComputeDerivativeLowMemorySingleThreaded (DerivativeType &derivative) const |
void | ComputeValueAndPRatioArray (double &MI) const |
void | operator= (const Self &) |
ParzenWindowMutualInformationImageToImageMetric (const Self &) | |
void | UpdateDerivativeLowMemory (const RealType &fixedImageValue, const RealType &movingImageValue, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, DerivativeType &derivative) const |
Private Attributes | |
PRatioArrayType | m_PRatioArray |
bool | m_UseJacobianPreconditioning |
|
protected |
Definition at line 177 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 178 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef SmartPointer< const Self > itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer |
Definition at line 85 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::CoordinateRepresentationType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::CoordinateRepresentationType |
Typedefs from the superclass.
Definition at line 97 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::DerivativeType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::DerivativeType |
Definition at line 124 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::DerivativeValueType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::DerivativeValueType |
Definition at line 125 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageConstPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageConstPointer |
Definition at line 102 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Protected Typedefs Typedefs inherited from superclass
Definition at line 171 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 172 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageLimiterOutputType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageLimiterOutputType |
Definition at line 137 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageLimiterType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageLimiterType |
Definition at line 134 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageMaskPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageMaskPointer |
Definition at line 120 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageMaskType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageMaskType |
Definition at line 119 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImagePixelType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImagePixelType |
Definition at line 127 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 174 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageRegionType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageRegionType |
Definition at line 103 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageType |
Definition at line 101 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::GradientImageFilterPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GradientImageFilterPointer |
Definition at line 118 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::GradientImageFilterType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GradientImageFilterType |
Definition at line 117 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::GradientImagePointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GradientImagePointer |
Definition at line 116 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::GradientImageType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GradientImageType |
Definition at line 115 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::GradientPixelType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GradientPixelType |
Definition at line 114 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ImageSampleContainerPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ImageSampleContainerPointer |
Definition at line 133 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ImageSampleContainerType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ImageSampleContainerType |
Definition at line 131 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ImageSamplerPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ImageSamplerPointer |
Definition at line 130 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ImageSamplerType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ImageSamplerType |
Definition at line 129 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 185 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::InputPointType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::InputPointType |
Definition at line 106 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::InterpolatorPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::InterpolatorPointer |
Definition at line 112 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::InterpolatorType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::InterpolatorType |
Definition at line 111 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 189 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 190 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 191 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 184 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 186 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 187 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 188 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 183 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 193 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 182 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MeasureType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MeasureType |
Definition at line 123 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageConstPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageConstPointer |
Definition at line 100 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 176 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageDerivativeScalesType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageDerivativeScalesType |
Definition at line 141 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 179 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 173 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageLimiterOutputType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageLimiterOutputType |
Definition at line 139 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageLimiterType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageLimiterType |
Definition at line 135 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageMaskPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageMaskPointer |
Definition at line 122 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageMaskType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageMaskType |
Definition at line 121 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImagePixelType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImagePixelType |
Definition at line 99 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 175 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageRegionType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageRegionType |
Definition at line 128 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageType |
Definition at line 98 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 194 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::NumberOfParametersType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::NumberOfParametersType |
Definition at line 110 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::OutputPointType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::OutputPointType |
Definition at line 107 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ParametersType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ParametersType |
Definition at line 126 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 192 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 181 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
Definition at line 180 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef SmartPointer< Self > itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Pointer |
Definition at line 84 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
private |
Definition at line 268 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
private |
Helper array for storing the values of the JointPDF ratios.
Definition at line 267 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::RealType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::RealType |
Definition at line 113 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef ParzenWindowMutualInformationImageToImageMetric itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Self |
Standard class typedefs.
Definition at line 81 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage > itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Superclass |
Definition at line 83 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ThreaderType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ThreaderType |
Definition at line 142 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::ThreadInfoType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ThreadInfoType |
Definition at line 143 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::TransformJacobianType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformJacobianType |
Definition at line 109 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::TransformParametersType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformParametersType |
Definition at line 108 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::TransformPointer itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformPointer |
Definition at line 105 of file itkParzenWindowMutualInformationImageToImageMetric.h.
typedef Superclass::TransformType itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformType |
Definition at line 104 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
protected |
The constructor.
|
inlineoverrideprotected |
The destructor.
Definition at line 166 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
private |
The private constructor.
|
inlineprotected |
Single-threadedly accumulate results.
|
private |
|
private |
Helper function to compute the derivative for the low memory variant.
|
staticprotected |
Helper function to launch the threads.
|
protectedvirtual |
Compute terms to implement preconditioning as proposed by Tustison et al.
|
private |
Helper function to compute m_PRatioArray in case of low memory consumption.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >.
Reimplemented in elastix::AdvancedMattesMutualInformationMetric< TElastix >.
|
virtual |
Set/get whether to apply the technique introduced by Nicholas Tustison; default: false
|
override |
Get the value.
|
overrideprotectedvirtual |
Get the value and analytic derivative. Called by GetValueAndDerivative if UseFiniteDifferenceDerivative == false.
Implements a version that only loops once over the samples, but uses a large block of memory to explicitly store the joint histogram derivative. It's size is #FixedHistogramBins * #MovingHistogramBins * #parameters * float.
Reimplemented from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >.
|
protectedvirtual |
Get the value and analytic derivative. Called by GetValueAndDerivative if UseFiniteDifferenceDerivative == false and UseExplicitPDFDerivatives == false.
Implements a version that avoids the large memory allocation of the explicit joint histogram derivative. This comes at the cost of looping over the samples twice, instead of once. The first time does not require GetJacobian() and moving image derivatives, however.
|
overrideprotectedvirtual |
Get the value and finite difference derivative. Called by GetValueAndDerivative if UseFiniteDifferenceDerivative == true.
This is really only here for experimental purposes.
Reimplemented from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >.
|
overrideprotectedvirtual |
Some initialization functions, called by Initialize.
Reimplemented from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >.
itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::itkStaticConstMacro | ( | FixedImageDimension | , |
unsigned int | , | ||
FixedImageType::ImageDimension | |||
) |
The fixed image dimension.
itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::itkStaticConstMacro | ( | MovingImageDimension | , |
unsigned int | , | ||
MovingImageType::ImageDimension | |||
) |
The moving image dimension.
|
protected |
Helper function to launch the threads.
|
static |
Method for creation through the object factory.
|
private |
The private copy constructor.
|
virtual |
|
inlineprotected |
Multi-threaded versions of the ComputePDF function.
|
private |
Helper function to update the derivative for the low memory variant.
|
protected |
Definition at line 244 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
mutableprivate |
Definition at line 269 of file itkParzenWindowMutualInformationImageToImageMetric.h.
|
private |
Setting
Definition at line 272 of file itkParzenWindowMutualInformationImageToImageMetric.h.
Generated on 1667476801 for elastix by ![]() |
![]() |