ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Friends
itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage > Class Template Reference

#include <itkMattesMutualInformationImageToImageMetricv4.h>

+ Inheritance diagram for itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >:
+ Collaboration diagram for itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef DerivativeType::ValueType DerivativeValueType
typedef
Superclass::FixedImageGradientType 
FixedImageGradientType
typedef
Superclass::FixedImageIndexType 
FixedImageIndexType
typedef
Superclass::FixedImagePixelType 
FixedImagePixelType
typedef
Superclass::FixedImagePointType 
FixedImagePointType
typedef Superclass::FixedImageType FixedImageType
typedef
Superclass::FixedSampledPointSetPointer 
FixedSampledPointSetPointer
typedef Superclass::JacobianType JacobianType
typedef Image< PDFValueType, 3 > JointPDFDerivativesType
typedef Image< PDFValueType, 2 > JointPDFType
typedef Superclass::MeasureType MeasureType
typedef
Superclass::MovingImageGradientType 
MovingImageGradientType
typedef
Superclass::MovingImagePixelType 
MovingImagePixelType
typedef
Superclass::MovingImagePointType 
MovingImagePointType
typedef
Superclass::MovingTransformType 
MovingTransformType
typedef double PDFValueType
typedef SmartPointer< SelfPointer
typedef
MattesMutualInformationImageToImageMetricv4 
Self
typedef ImageToImageMetricv4
< TFixedImage, TMovingImage,
TVirtualImage > 
Superclass
typedef
Superclass::VirtualImageType 
VirtualImageType
typedef
Superclass::VirtualIndexType 
VirtualIndexType
typedef
Superclass::VirtualPointType 
VirtualPointType
typedef
Superclass::VirtualSampledPointSetType 
VirtualSampledPointSetType

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const
virtual void Initialize (void) throw ( itk::ExceptionObject )
virtual void SetNumberOfHistogramBins (SizeValueType _arg)
virtual const SizeValueTypeGetNumberOfHistogramBins ()
const JointPDFType::Pointer GetJointPDF () const
const
JointPDFDerivativesType::Pointer 
GetJointPDFDerivatives () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const ImageDimensionType FixedImageDimension = ::itk::GetImageDimension<TFixedImage>::ImageDimension
static const ImageDimensionType MovingImageDimension = ::itk::GetImageDimension<TMovingImage>::ImageDimension
static const ImageDimensionType VirtualImageDimension = ::itk::GetImageDimension<TVirtualImage>::ImageDimension

Protected Types

typedef
BSplineDerivativeKernelFunction
< 3, PDFValueType
CubicBSplineDerivativeFunctionType
typedef BSplineKernelFunction
< 3, PDFValueType
CubicBSplineFunctionType
typedef
JointPDFDerivativesType::IndexType 
JointPDFDerivativesIndexType
typedef
JointPDFDerivativesType::RegionType 
JointPDFDerivativesRegionType
typedef
JointPDFDerivativesType::SizeType 
JointPDFDerivativesSizeType
typedef
JointPDFDerivativesType::PixelType 
JointPDFDerivativesValueType
typedef JointPDFType::IndexType JointPDFIndexType
typedef JointPDFType::RegionType JointPDFRegionType
typedef JointPDFType::SizeType JointPDFSizeType
typedef JointPDFType::PixelType JointPDFValueType
typedef
MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedImageRegionPartitioner
< Superclass::VirtualImageDimension >
, Superclass, Self
MattesMutualInformationDenseGetValueAndDerivativeThreaderType
typedef
MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedIndexedContainerPartitioner,
Superclass, Self
MattesMutualInformationSparseGetValueAndDerivativeThreaderType
typedef std::vector< PRatioTypePRatioArrayType
typedef PDFValueType PRatioType

Protected Member Functions

OffsetValueType ComputeSingleFixedImageParzenWindowIndex (const FixedImagePixelType &value) const
virtual void GetValueCommonAfterThreadedExecution ()
 MattesMutualInformationImageToImageMetricv4 ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~MattesMutualInformationImageToImageMetricv4 ()

Protected Attributes

CubicBSplineDerivativeFunctionType::Pointer m_CubicBSplineDerivativeKernel
CubicBSplineFunctionType::Pointer m_CubicBSplineKernel
PDFValueType m_FixedImageBinSize
PDFValueType m_FixedImageNormalizedMin
PDFValueType m_FixedImageTrueMax
PDFValueType m_FixedImageTrueMin
std::vector< OffsetValueTypem_JointPdfIndex1DArray
std::vector< DerivativeTypem_LocalDerivativeByParzenBin
PDFValueType m_MovingImageBinSize
std::vector< PDFValueTypem_MovingImageMarginalPDF
PDFValueType m_MovingImageNormalizedMin
PDFValueType m_MovingImageTrueMax
PDFValueType m_MovingImageTrueMin
SizeValueType m_NumberOfHistogramBins
PRatioArrayType m_PRatioArray
std::vector< std::vector
< PDFValueType > > 
m_ThreaderFixedImageMarginalPDF
std::vector
< JointPDFType::Pointer
m_ThreaderJointPDF
std::vector
< JointPDFDerivativesType::Pointer
m_ThreaderJointPDFDerivatives
std::vector< int > m_ThreaderJointPDFEndBin
std::vector< int > m_ThreaderJointPDFStartBin
std::vector< PDFValueTypem_ThreaderJointPDFSum

Private Member Functions

 MattesMutualInformationImageToImageMetricv4 (const Self &)
void operator= (const Self &)

Friends

class MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self >
class MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self >

Detailed Description

template<class TFixedImage, class TMovingImage, class TVirtualImage = TFixedImage>
class itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >

Computes the mutual information between two images to be registered using the method of Mattes et al.

MattesMutualInformationImageToImageMetric computes the mutual information between a fixed and moving image to be registered.

This class is templated over the FixedImage type and the MovingImage type.

The calculations are based on the method of Mattes et al [1,2] where the probability density distribution are estimated using Parzen histograms. Since the fixed image PDF does not contribute to the derivatives, it does not need to be smooth. Hence, a zero order (box car) BSpline kernel is used for the fixed image intensity PDF. On the other hand, to ensure smoothness a third order BSpline kernel is used for the moving image intensity PDF.

During each call of GetValue(), GetDerivatives(), GetValueAndDerivatives(), marginal and joint intensity PDF's values are estimated at discrete position or bins. The number of bins used can be set via SetNumberOfHistogramBins(). To handle data with arbitray magnitude and dynamic range, the image intensity is scale such that any contribution to the histogram will fall into a valid bin.

One the PDF's have been contructed, the mutual information is obtained by doubling summing over the discrete PDF values.

Warning:
Local-support transforms are not yet supported. If used, an exception is thrown during Initialize().
Note:
The per-iteration post-processing code is not multi-threaded, but could be readily be made so for a small performance gain. See GetValueCommonAfterThreadedExecution(), GetValueAndDerivative() and threader::AfterThreadedExecution().

The algorithm and much of the code was copied from the previous Mattes MI metric, i.e. itkMattesMutualInformationImageToImageMetric.

See MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for poritons of the algorithm implementation.

See ImageToImageMetricv4 for details of common metric operation and options.

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. Vol.22, No.1, January 2003. pp.120-128. [3] "Optimization of Mutual Information for MultiResolution Image Registration" P. Thevenaz and M. Unser IEEE Transactions in Image Processing, 9(12) December 2000.

See also:
itkImageToImageMetricv4

Definition at line 96 of file itkMattesMutualInformationImageToImageMetricv4.h.


Member Typedef Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<const Self> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef BSplineDerivativeKernelFunction<3,PDFValueType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::CubicBSplineDerivativeFunctionType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef BSplineKernelFunction<3,PDFValueType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::CubicBSplineFunctionType [protected]

Typedefs for BSpline kernel and derivative functions.

Definition at line 229 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::DerivativeType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType

Type of the metric derivative.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 114 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef DerivativeType::ValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeValueType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageGradientType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageIndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageIndexType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedSampledPointSetPointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedSampledPointSetPointer

Types inherited from Superclass.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 135 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::JacobianType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JacobianType

Jacobian type. This is the same for all transforms

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 128 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFDerivativesType::IndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesIndexType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFDerivativesType::RegionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesRegionType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFDerivativesType::SizeType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesSizeType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Image<PDFValueType, 3> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFDerivativesType::PixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesValueType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFType::IndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFIndexType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFType::RegionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFRegionType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFType::SizeType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFSizeType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Image<PDFValueType, 2> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFType

Typedef for the joint PDF and PDF derivatives are stored as ITK Images.

Definition at line 171 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef JointPDFType::PixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFValueType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MeasureType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MeasureType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImageGradientType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingTransformType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef double itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PDFValueType

The marginal PDFs are stored as std::vector.

Definition at line 168 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<Self> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef std::vector<PRatioType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PRatioArrayType [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PRatioType [protected]

Helper array for storing the values of the JointPDF ratios.

Definition at line 254 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef MattesMutualInformationImageToImageMetricv4 itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Superclass
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualImageType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageType

Types for the virtual domain

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 129 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualIndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualIndexType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualPointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualSampledPointSetType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualSampledPointSetType

Constructor & Destructor Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MattesMutualInformationImageToImageMetricv4 ( ) [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::~MattesMutualInformationImageToImageMetricv4 ( ) [protected, virtual]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MattesMutualInformationImageToImageMetricv4 ( const Self ) [private]

Member Function Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
OffsetValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ComputeSingleFixedImageParzenWindowIndex ( const FixedImagePixelType value) const [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual::itk::LightObject::Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const JointPDFType::Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetJointPDF ( ) const [inline]

Get the internal JointPDF image that was used in creating the metric value.

Definition at line 178 of file itkMattesMutualInformationImageToImageMetricv4.h.

References NULL.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const JointPDFDerivativesType::Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetJointPDFDerivatives ( ) const [inline]

Get the internal JointPDFDeriviative image that was used in creating the metric derivative value. This is only created when a global support transform is used, and derivatives are requested.

Definition at line 194 of file itkMattesMutualInformationImageToImageMetricv4.h.

References NULL.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual const char* itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual const SizeValueType& itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetNumberOfHistogramBins ( ) [virtual]

Number of bins to used in the histogram. Typical value is 50. The minimum value is 5 due to the padding required by the Parzen windowing with a cubic-BSpline kernel. Note that even if the metric is used on binary images, the number of bins should at least be equal to five.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetValueAndDerivative ( MeasureType value,
DerivativeType derivative 
) const [virtual]

Calculate and return both the value for the metric and its derivative. Overloaded here to provide special handling.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetValueCommonAfterThreadedExecution ( ) [protected, virtual]

Post-processing code common to both GetValue and GetValueAndDerivative.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Initialize ( void  ) throw ( itk::ExceptionObject ) [virtual]

Initialize the Metric by making sure that all the components are present and plugged together correctly, and initializing internal variables as required. This is for one-time initialization, e.g. before starting an optimization process.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
static Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SetNumberOfHistogramBins ( SizeValueType  _arg) [virtual]

Number of bins to used in the histogram. Typical value is 50. The minimum value is 5 due to the padding required by the Parzen windowing with a cubic-BSpline kernel. Note that even if the metric is used on binary images, the number of bins should at least be equal to five.


Friends And Related Function Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
friend class MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self > [friend]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
friend class MattesMutualInformationImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self > [friend]

Member Data Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageDimension = ::itk::GetImageDimension<TFixedImage>::ImageDimension [static]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
CubicBSplineDerivativeFunctionType::Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_CubicBSplineDerivativeKernel [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
CubicBSplineFunctionType::Pointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_CubicBSplineKernel [protected]

Cubic BSpline kernel for computing Parzen histograms.

Definition at line 250 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_FixedImageBinSize [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_FixedImageNormalizedMin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_FixedImageTrueMax [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_FixedImageTrueMin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<OffsetValueType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_JointPdfIndex1DArray [mutable, protected]

Helper array for storing per-parameter linearized index to retrieve the pRatio during evaluation with local-support transform.

Definition at line 261 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<DerivativeType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_LocalDerivativeByParzenBin [mutable, protected]

Store the per-point local derivative result by parzen window bin. For local-support transforms only.

Definition at line 278 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_MovingImageBinSize [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<PDFValueType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_MovingImageMarginalPDF [mutable, protected]

The moving image marginal PDF.

Definition at line 264 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_MovingImageNormalizedMin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_MovingImageTrueMax [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PDFValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_MovingImageTrueMin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
SizeValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_NumberOfHistogramBins [protected]

Variables to define the marginal and joint histograms.

Definition at line 239 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PRatioArrayType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_PRatioArray [mutable, protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<std::vector<PDFValueType> > itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderFixedImageMarginalPDF [mutable, protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<JointPDFType::Pointer> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderJointPDF [protected]

The joint PDF and PDF derivatives.

Definition at line 268 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<JointPDFDerivativesType::Pointer> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderJointPDFDerivatives [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<int> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderJointPDFEndBin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<int> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderJointPDFStartBin [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<PDFValueType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderJointPDFSum [mutable, protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageDimension = ::itk::GetImageDimension<TMovingImage>::ImageDimension [static]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageDimension = ::itk::GetImageDimension<TVirtualImage>::ImageDimension [static]

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