ITK  4.3.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 | List of all members
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 >:

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.

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::VirtualPointSetType 
VirtualPointSetType
 
typedef
Superclass::VirtualPointType 
VirtualPointType
 
- Public Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::CoordinateRepresentationType 
CoordinateRepresentationType
 
typedef
MetricTraits::DefaultFixedImageGradientCalculator 
DefaultFixedImageGradientCalculator
 
typedef
MetricTraits::DefaultFixedImageGradientFilter 
DefaultFixedImageGradientFilter
 
typedef
MetricTraits::DefaultMovingImageGradientCalculator 
DefaultMovingImageGradientCalculator
 
typedef
MetricTraits::DefaultMovingImageGradientFilter 
DefaultMovingImageGradientFilter
 
typedef Superclass::DerivativeType DerivativeType
 
typedef DerivativeType::ValueType DerivativeValueType
 
typedef Superclass::DimensionType DimensionType
 
typedef
MetricTraits::FixedGradientPixelType 
FixedGradientPixelType
 
typedef CovariantVector
< typename
FixedImageGradientType::ValueType,
FixedImageDimension > 
FixedImageComponentGradientType
 
typedef
FixedImageType::ConstPointer 
FixedImageConstPointer
 
typedef
FixedImageGradientCalculatorType::Pointer 
FixedImageGradientCalculatorPointer
 
typedef
MetricTraits::FixedImageGradientCalculatorType 
FixedImageGradientCalculatorType
 
typedef
FixedImageGradientFilterType::Pointer 
FixedImageGradientFilterPointer
 
typedef
MetricTraits::FixedImageGradientFilterType 
FixedImageGradientFilterType
 
typedef
FixedImageGradientImageType::Pointer 
FixedImageGradientImagePointer
 
typedef
MetricTraits::FixedImageGradientImageType 
FixedImageGradientImageType
 
typedef
MetricTraits::FixedImageGradientType 
FixedImageGradientType
 
typedef FixedImageType::IndexType FixedImageIndexType
 
typedef
FixedImageMaskType::ConstPointer 
FixedImageMaskConstPointer
 
typedef FixedImageMaskType::Pointer FixedImageMaskPointer
 
typedef SpatialObject
< itkGetStaticConstMacro(FixedImageDimension) > 
FixedImageMaskType
 
typedef FixedImageType::PixelType FixedImagePixelType
 
typedef FixedImageType::Pointer FixedImagePointer
 
typedef FixedImageType::PointType FixedImagePointType
 
typedef TFixedImage FixedImageType
 
typedef
Superclass::FixedInputPointType 
FixedInputPointType
 
typedef
FixedInterpolatorType::Pointer 
FixedInterpolatorPointer
 
typedef
InterpolateImageFunction
< FixedImageType,
CoordinateRepresentationType
FixedInterpolatorType
 
typedef
Superclass::FixedOutputPointType 
FixedOutputPointType
 
typedef FixedImagePixelType FixedPixelType
 
typedef MetricTraits::FixedRealType FixedRealType
 
typedef
FixedSampledPointSetType::ConstPointer 
FixedSampledPointSetConstPointer
 
typedef
FixedSampledPointSetType::Pointer 
FixedSampledPointSetPointer
 
typedef PointSet< typename
FixedImageType::PixelType,
itkGetStaticConstMacro(FixedImageDimension)> 
FixedSampledPointSetType
 
typedef NumericTraits
< FixedRealType >
::ScalarRealType 
FixedScalarRealType
 
typedef
Superclass::FixedTransformJacobianType 
FixedTransformJacobianType
 
typedef
Superclass::FixedTransformParametersType 
FixedTransformParametersType
 
typedef
Superclass::FixedTransformPointer 
FixedTransformPointer
 
typedef
Superclass::FixedTransformType 
FixedTransformType
 
typedef
Superclass::GradientSourceType 
GradientSourceType
 
typedef Superclass::DimensionType ImageDimensionType
 
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
 
typedef Superclass::JacobianType JacobianType
 
typedef Superclass::MeasureType MeasureType
 
typedef
DefaultImageToImageMetricTraitsv4
< TFixedImage, TMovingImage,
TVirtualImage > 
MetricTraits
 
typedef
MetricTraits::MovingGradientPixelType 
MovingGradientPixelType
 
typedef CovariantVector
< typename
MovingImageGradientType::ValueType,
MovingImageDimension > 
MovingImageComponentGradientType
 
typedef
MovingImageType::ConstPointer 
MovingImageConstPointer
 
typedef
MovingImageGradientCalculatorType::Pointer 
MovingImageGradientCalculatorPointer
 
typedef
MetricTraits::MovingImageGradientCalculatorType 
MovingImageGradientCalculatorType
 
typedef
MovingImageGradientFilterType::Pointer 
MovingImageGradientFilterPointer
 
typedef
MetricTraits::MovingImageGradientFilterType 
MovingImageGradientFilterType
 
typedef
MovingImageGradientImageType::Pointer 
MovingImageGradientImagePointer
 
typedef
MetricTraits::MovingImageGradientImageType 
MovingImageGradientImageType
 
typedef
MetricTraits::MovingImageGradientType 
MovingImageGradientType
 
typedef MovingImageType::IndexType MovingImageIndexType
 
typedef
MovingImageMaskType::ConstPointer 
MovingImageMaskConstPointer
 
typedef
MovingImageMaskType::Pointer 
MovingImageMaskPointer
 
typedef SpatialObject
< itkGetStaticConstMacro(MovingImageDimension) > 
MovingImageMaskType
 
typedef MovingImageType::PixelType MovingImagePixelType
 
typedef MovingImageType::Pointer MovingImagePointer
 
typedef MovingImageType::PointType MovingImagePointType
 
typedef MovingImageType::RegionType MovingImageRegionType
 
typedef TMovingImage MovingImageType
 
typedef
Superclass::MovingInputPointType 
MovingInputPointType
 
typedef
MovingInterpolatorType::Pointer 
MovingInterpolatorPointer
 
typedef
InterpolateImageFunction
< MovingImageType,
CoordinateRepresentationType
MovingInterpolatorType
 
typedef
Superclass::MovingOutputPointType 
MovingOutputPointType
 
typedef MovingImagePixelType MovingPixelType
 
typedef
MetricTraits::MovingRealType 
MovingRealType
 
typedef NumericTraits
< MovingRealType >
::ScalarRealType 
MovingScalarRealType
 
typedef
Superclass::MovingTransformJacobianType 
MovingTransformJacobianType
 
typedef
Superclass::MovingTransformParametersType 
MovingTransformParametersType
 
typedef
Superclass::MovingTransformPointer 
MovingTransformPointer
 
typedef
Superclass::MovingTransformType 
MovingTransformType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef ImageToImageMetricv4 Self
 
typedef ObjectToObjectMetric
< TFixedImage::ImageDimension,
TMovingImage::ImageDimension,
TVirtualImage > 
Superclass
 
typedef
Superclass::VirtualDirectionType 
VirtualDirectionType
 
typedef CovariantVector
< typename
VirtualImageGradientType::ValueType,
VirtualImageDimension > 
VirtualImageComponentGradientType
 
typedef
MetricTraits::VirtualImageGradientType 
VirtualImageGradientType
 
typedef
Superclass::VirtualImagePointer 
VirtualImagePointer
 
typedef
Superclass::VirtualImageType 
VirtualImageType
 
typedef
Superclass::VirtualIndexType 
VirtualIndexType
 
typedef
Superclass::VirtualPointType 
VirtualOriginType
 
typedef
Superclass::VirtualPixelType 
VirtualPixelType
 
typedef
Superclass::VirtualPointSetPointer 
VirtualPointSetPointer
 
typedef
Superclass::VirtualPointSetType 
VirtualPointSetType
 
typedef
Superclass::VirtualPointType 
VirtualPointType
 
typedef Superclass::VirtualSizeType VirtualRadiusType
 
typedef
Superclass::VirtualRegionType 
VirtualRegionType
 
typedef Superclass::VirtualSizeType VirtualSizeType
 
typedef
Superclass::VirtualSpacingType 
VirtualSpacingType
 
- Public Types inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::ParametersValueType 
CoordinateRepresentationType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef
Superclass::DerivativeValueType 
DerivativeValueType
 
typedef SizeValueType DimensionType
 
typedef
FixedTransformType::InputPointType 
FixedInputPointType
 
typedef
FixedTransformType::OutputPointType 
FixedOutputPointType
 
typedef
FixedTransformType::JacobianType 
FixedTransformJacobianType
 
typedef
FixedTransformType::ParametersType 
FixedTransformParametersType
 
typedef FixedTransformType::Pointer FixedTransformPointer
 
typedef Transform
< ParametersValueType,
TVirtualImage::ImageDimension,
TFixedDimension > 
FixedTransformType
 
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
 
typedef
FixedTransformType::JacobianType 
JacobianType
 
typedef Superclass::MeasureType MeasureType
 
typedef
DisplacementFieldTransform
< CoordinateRepresentationType,
itkGetStaticConstMacro(MovingDimension) > 
MovingDisplacementFieldTransformType
 
typedef
MovingTransformType::InputPointType 
MovingInputPointType
 
typedef
MovingTransformType::OutputPointType 
MovingOutputPointType
 
typedef
MovingTransformType::JacobianType 
MovingTransformJacobianType
 
typedef
MovingTransformType::ParametersType 
MovingTransformParametersType
 
typedef
MovingTransformType::Pointer 
MovingTransformPointer
 
typedef Transform
< ParametersValueType,
TVirtualImage::ImageDimension,
TMovingDimension > 
MovingTransformType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef ObjectToObjectMetric Self
 
typedef ObjectToObjectMetricBase Superclass
 
typedef
VirtualImageType::DirectionType 
VirtualDirectionType
 
typedef
VirtualImageType::ConstPointer 
VirtualImageConstPointer
 
typedef VirtualImageType::Pointer VirtualImagePointer
 
typedef TVirtualImage VirtualImageType
 
typedef VirtualImageType::IndexType VirtualIndexType
 
typedef VirtualImageType::PointType VirtualOriginType
 
typedef VirtualImageType::PixelType VirtualPixelType
 
typedef
VirtualPointSetType::Pointer 
VirtualPointSetPointer
 
typedef PointSet
< VirtualPixelType,
itkGetStaticConstMacro(VirtualDimension)> 
VirtualPointSetType
 
typedef VirtualImageType::PointType VirtualPointType
 
typedef VirtualImageType::SizeType VirtualRadiusType
 
typedef
VirtualImageType::RegionType 
VirtualRegionType
 
typedef VirtualRegionType::SizeType VirtualSizeType
 
typedef
VirtualImageType::SpacingType 
VirtualSpacingType
 
- Public Types inherited from itk::ObjectToObjectMetricBase
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::ParametersValueType 
CoordinateRepresentationType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef DerivativeType::ValueType DerivativeValueType
 
enum  GradientSourceType {
  GRADIENT_SOURCE_FIXED =0,
  GRADIENT_SOURCE_MOVING,
  GRADIENT_SOURCE_BOTH
}
 
typedef double InternalComputationValueType
 
typedef Superclass::MeasureType MeasureType
 
typedef unsigned int NumberOfParametersType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef ObjectToObjectMetricBase Self
 
typedef SingleValuedCostFunctionv4 Superclass
 
- Public Types inherited from itk::SingleValuedCostFunctionv4
typedef SmartPointer< const SelfConstPointer
 
typedef Array
< ParametersValueType
DerivativeType
 
typedef double MeasureType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef SingleValuedCostFunctionv4 Self
 
typedef CostFunction Superclass
 
- Public Types inherited from itk::CostFunction
typedef SmartPointer< const SelfConstPointer
 
typedef OptimizerParameters
< ParametersValueType
ParametersType
 
typedef double ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef CostFunction Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () 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
 
- Public Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
virtual void GetDerivative (DerivativeType &) const
 
virtual const FixedImageTypeGetFixedImage ()
 
virtual const
FixedImageGradientImageType
GetFixedImageGradientImage ()
 
virtual const
FixedInterpolatorType
GetFixedInterpolator ()
 
virtual const MovingImageTypeGetMovingImage ()
 
virtual const
MovingImageGradientImageType
GetMovingImageGradientImage ()
 
virtual const
MovingInterpolatorType
GetMovingInterpolator ()
 
SizeValueType GetNumberOfDomainPoints () const
 
virtual const SizeValueTypeGetNumberOfSkippedFixedSampledPoints ()
 
virtual ThreadIdType GetNumberOfThreadsUsed () const
 
virtual SizeValueType GetNumberOfValidPoints () const
 
virtual MeasureType GetValue () const
 
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const
 
virtual const VirtualPointSetTypeGetVirtualSampledPointSet ()
 
virtual void SetFixedImage (const FixedImageType *_arg)
 
virtual void SetFixedInterpolator (FixedInterpolatorType *_arg)
 
virtual void SetMovingImage (const MovingImageType *_arg)
 
virtual void SetMovingInterpolator (MovingInterpolatorType *_arg)
 
virtual bool SupportsArbitraryVirtualDomainSamples (void) const
 
virtual void SetMovingImageMask (MovingImageMaskType *_arg)
 
virtual void SetMovingImageMask (const MovingImageMaskType *_arg)
 
virtual const MovingImageMaskTypeGetMovingImageMask ()
 
virtual void SetFixedImageMask (FixedImageMaskType *_arg)
 
virtual void SetFixedImageMask (const FixedImageMaskType *_arg)
 
virtual const FixedImageMaskTypeGetFixedImageMask ()
 
virtual void SetFixedSampledPointSet (FixedSampledPointSetType *_arg)
 
virtual void SetFixedSampledPointSet (const FixedSampledPointSetType *_arg)
 
virtual const
FixedSampledPointSetType
GetFixedSampledPointSet ()
 
virtual void SetUseFixedSampledPointSet (bool _arg)
 
virtual const bool & GetUseFixedSampledPointSet ()
 
virtual void UseFixedSampledPointSetOn ()
 
virtual void UseFixedSampledPointSetOff ()
 
virtual void SetFixedImageGradientFilter (FixedImageGradientFilterType *_arg)
 
virtual
FixedImageGradientFilterType
GetFixedImageGradientFilter ()
 
virtual void SetMovingImageGradientFilter (MovingImageGradientFilterType *_arg)
 
virtual
MovingImageGradientFilterType
GetMovingImageGradientFilter ()
 
virtual void SetFixedImageGradientCalculator (FixedImageGradientCalculatorType *_arg)
 
virtual
FixedImageGradientCalculatorType
GetFixedImageGradientCalculator ()
 
virtual void SetMovingImageGradientCalculator (MovingImageGradientCalculatorType *_arg)
 
virtual
MovingImageGradientCalculatorType
GetMovingImageGradientCalculator ()
 
virtual void SetUseFixedImageGradientFilter (bool _arg)
 
virtual const bool & GetUseFixedImageGradientFilter ()
 
virtual void UseFixedImageGradientFilterOn ()
 
virtual void UseFixedImageGradientFilterOff ()
 
virtual void SetUseMovingImageGradientFilter (bool _arg)
 
virtual const bool & GetUseMovingImageGradientFilter ()
 
virtual void UseMovingImageGradientFilterOn ()
 
virtual void UseMovingImageGradientFilterOff ()
 
virtual void SetMaximumNumberOfThreads (const ThreadIdType threads)
 
virtual ThreadIdType GetMaximumNumberOfThreads () const
 
virtual void SetUseFloatingPointCorrection (bool _arg)
 
virtual const bool & GetUseFloatingPointCorrection ()
 
virtual void UseFloatingPointCorrectionOn ()
 
virtual void UseFloatingPointCorrectionOff ()
 
virtual void SetFloatingPointCorrectionResolution (DerivativeValueType _arg)
 
virtual DerivativeValueType GetFloatingPointCorrectionResolution () const
 
- Public Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
 
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
 
virtual const FixedTransformTypeGetFixedTransform ()
 
virtual const MovingTransformTypeGetMovingTransform ()
 
virtual NumberOfParametersType GetNumberOfLocalParameters () const
 
virtual NumberOfParametersType GetNumberOfParameters () const
 
virtual const ParametersTypeGetParameters () const
 
const MovingTransformTypeGetTransform ()
 
VirtualDirectionType GetVirtualDirection (void) const
 
virtual const TimeStampGetVirtualDomainTimeStamp (void) const
 
virtual const VirtualImageTypeGetVirtualImage ()
 
VirtualOriginType GetVirtualOrigin (void) const
 
const VirtualRegionTypeGetVirtualRegion (void) const
 
VirtualSpacingType GetVirtualSpacing (void) const
 
virtual bool HasLocalSupport () const
 
virtual void SetFixedTransform (FixedTransformType *_arg)
 
virtual void SetMovingTransform (MovingTransformType *_arg)
 
virtual void SetParameters (ParametersType &params)
 
void SetTransform (MovingTransformType *transform)
 
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
 
virtual void UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor)
 
void SetVirtualDomainFromImage (VirtualImageType *virtualImage)
 
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
 
bool IsInsideVirtualDomain (const VirtualPointType &point) const
 
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
 
- Public Member Functions inherited from itk::ObjectToObjectMetricBase
MeasureType GetCurrentValue () const
 
virtual GradientSourceType GetGradientSource () const
 
bool GetGradientSourceIncludesFixed () const
 
bool GetGradientSourceIncludesMoving () const
 
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
 
virtual void SetGradientSource (GradientSourceType _arg)
 
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static const ImageDimensionType FixedImageDimension = TFixedImage::ImageDimension
 
static const ImageDimensionType MovingImageDimension = TMovingImage::ImageDimension
 
static const ImageDimensionType VirtualImageDimension = TVirtualImage::ImageDimension
 
- Static Public Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
static const DimensionType FixedImageDimension
 
static const DimensionType MovingImageDimension
 
static const DimensionType VirtualImageDimension
 
- Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
static const DimensionType FixedDimension
 
static const DimensionType MovingDimension
 
static const DimensionType VirtualDimension
 

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 Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
typedef
LinearInterpolateImageFunction
< FixedImageGradientImageType,
CoordinateRepresentationType
FixedImageGradientInterpolatorType
 
typedef
LinearInterpolateImageFunction
< MovingImageGradientImageType,
CoordinateRepresentationType
MovingImageGradientInterpolatorType
 

Protected Member Functions

OffsetValueType ComputeSingleFixedImageParzenWindowIndex (const FixedImagePixelType &value) const
 
virtual void GetValueCommonAfterThreadedExecution ()
 
 MattesMutualInformationImageToImageMetricv4 ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual ~MattesMutualInformationImageToImageMetricv4 ()
 
- Protected Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
virtual void ComputeFixedImageGradientAtPoint (const FixedImagePointType &mappedPoint, FixedImageGradientType &gradient) const
 
virtual void ComputeFixedImageGradientFilterImage ()
 
virtual void ComputeMovingImageGradientAtPoint (const MovingImagePointType &mappedPoint, MovingImageGradientType &gradient) const
 
virtual void ComputeMovingImageGradientFilterImage () const
 
virtual bool GetComputeDerivative () const
 
virtual void GetValueAndDerivativeExecute () const
 
 ImageToImageMetricv4 ()
 
virtual void InitializeForIteration () const
 
void PrintSelf (std::ostream &os, Indent indent) const
 
bool TransformAndEvaluateFixedPoint (const VirtualPointType &virtualPoint, FixedImagePointType &mappedFixedPoint, FixedImagePixelType &mappedFixedPixelValue) const
 
bool TransformAndEvaluateMovingPoint (const VirtualPointType &virtualPoint, MovingImagePointType &mappedMovingPoint, MovingImagePixelType &mappedMovingPixelValue) const
 
virtual ~ImageToImageMetricv4 ()
 
virtual void InitializeDefaultFixedImageGradientFilter (void)
 
virtual void InitializeDefaultMovingImageGradientFilter (void)
 
- Protected Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
MovingDisplacementFieldTransformTypeGetMovingDisplacementFieldTransform () const
 
 ObjectToObjectMetric ()
 
bool TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const
 
void TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const
 
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace ()
 
bool VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const
 
virtual ~ObjectToObjectMetric ()
 
- Protected Member Functions inherited from itk::ObjectToObjectMetricBase
 ObjectToObjectMetricBase ()
 
virtual ~ObjectToObjectMetricBase ()
 
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4
 SingleValuedCostFunctionv4 ()
 
virtual ~SingleValuedCostFunctionv4 ()
 
- Protected Member Functions inherited from itk::CostFunction
 CostFunction ()
 
virtual ~CostFunction ()
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

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
 
- Protected Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
DefaultFixedImageGradientCalculator::Pointer m_DefaultFixedImageGradientCalculator
 
DefaultFixedImageGradientFilter::Pointer m_DefaultFixedImageGradientFilter
 
DefaultMovingImageGradientCalculator::Pointer m_DefaultMovingImageGradientCalculator
 
DefaultMovingImageGradientFilter::Pointer m_DefaultMovingImageGradientFilter
 
ImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedImageRegionPartitioner
< VirtualImageDimension >
, Self >::Pointer 
m_DenseGetValueAndDerivativeThreader
 
DerivativeTypem_DerivativeResult
 
FixedImageConstPointer m_FixedImage
 
FixedImageGradientCalculatorPointer m_FixedImageGradientCalculator
 
FixedImageGradientFilterPointer m_FixedImageGradientFilter
 
FixedImageGradientImagePointer m_FixedImageGradientImage
 
FixedImageGradientInterpolatorType::Pointer m_FixedImageGradientInterpolator
 
FixedImageMaskConstPointer m_FixedImageMask
 
FixedInterpolatorPointer m_FixedInterpolator
 
FixedSampledPointSetConstPointer m_FixedSampledPointSet
 
MovingImageConstPointer m_MovingImage
 
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
 
MovingImageGradientFilterPointer m_MovingImageGradientFilter
 
MovingImageGradientImagePointer m_MovingImageGradientImage
 
MovingImageGradientInterpolatorType::Pointer m_MovingImageGradientInterpolator
 
MovingImageMaskConstPointer m_MovingImageMask
 
MovingInterpolatorPointer m_MovingInterpolator
 
ImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedIndexedContainerPartitioner,
Self >::Pointer 
m_SparseGetValueAndDerivativeThreader
 
bool m_UseFixedImageGradientFilter
 
bool m_UseFixedSampledPointSet
 
bool m_UseMovingImageGradientFilter
 
VirtualPointSetPointer m_VirtualSampledPointSet
 
- Protected Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
FixedTransformPointer m_FixedTransform
 
MovingTransformPointer m_MovingTransform
 
SizeValueType m_NumberOfValidPoints
 
bool m_UserHasSetVirtualDomain
 
VirtualImagePointer m_VirtualImage
 
- Protected Attributes inherited from itk::ObjectToObjectMetricBase
GradientSourceType m_GradientSource
 
MeasureType m_Value
 

Private Member Functions

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

Friends

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

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 215 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::DerivativeType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType
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.

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
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 159 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

Superclass types

Definition at line 110 of file itkMattesMutualInformationImageToImageMetricv4.h.

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 156 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 240 of file itkMattesMutualInformationImageToImageMetricv4.h.

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

Standard class typedefs.

Definition at line 101 of file itkMattesMutualInformationImageToImageMetricv4.h.

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
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::VirtualPointSetType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointSetType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualPointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType

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 ( )
protectedvirtual
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>
virtual void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ComputeResults ( void  ) const
privatevirtual

Perform the final step in computing results

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 166 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 182 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

  1. 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 >::GetValueCommonAfterThreadedExecution ( )
protectedvirtual

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.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::operator= ( const Self )
private
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

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::ObjectToObjectMetricBase.

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

  1. 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 = 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 236 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
mutableprotected

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

Definition at line 247 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<DerivativeType> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_LocalDerivativeByParzenBin
mutableprotected

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

Definition at line 264 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
mutableprotected

The moving image marginal PDF.

Definition at line 250 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 225 of file itkMattesMutualInformationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
PRatioArrayType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_PRatioArray
mutableprotected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
std::vector<std::vector<PDFValueType> > itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_ThreaderFixedImageMarginalPDF
mutableprotected
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 254 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
mutableprotected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageDimension = TMovingImage::ImageDimension
static
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageDimension = TVirtualImage::ImageDimension
static

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