ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkMattesMutualInformationImageToImageMetric.h>
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 fixed and moving images are set via methods SetFixedImage() and SetMovingImage(). This metric makes use of user specified Transform and Interpolator. The Transform is used to map points from the fixed image to the moving image domain. The Interpolator is used to evaluate the image intensity at user specified geometric points in the moving image. The Transform and Interpolator are set via methods SetTransform() and SetInterpolator().
If a BSplineInterpolationFunction is used, this class obtain image derivatives from the BSpline interpolator. Otherwise, image derivatives are computed using central differencing.
The method GetValue() computes of the mutual information while method GetValueAndDerivative() computes both the mutual information and its derivatives with respect to the transform parameters.
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.
On Initialize(), the FixedImage is uniformly sampled within the FixedImageRegion. The number of samples used can be set via SetNumberOfSpatialSamples(). Typically, the number of spatial samples used should increase with the image size.
The option UseAllPixelOn() disables the random sampling and uses all the pixels of the FixedImageRegion in order to estimate the joint 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.
Notes: 1. This class returns the negative mutual information value. 2. This class in not thread safe due the private data structures used to the store the sampled points and the marginal and joint pdfs.
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.
Definition at line 114 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::BSplineTransformIndexArrayType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::BSplineTransformIndexArrayType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 146 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::BSplineTransformWeightsType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::BSplineTransformWeightsType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 145 of file itkMattesMutualInformationImageToImageMetric.h.
typedef SmartPointer<const Self> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 123 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::CoordinateRepresentationType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::CoordinateRepresentationType |
Type used for representing point components
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 148 of file itkMattesMutualInformationImageToImageMetric.h.
typedef BSplineDerivativeKernelFunction<3,PDFValueType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::CubicBSplineDerivativeFunctionType [private] |
Definition at line 278 of file itkMattesMutualInformationImageToImageMetric.h.
typedef BSplineKernelFunction<3,PDFValueType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::CubicBSplineFunctionType [private] |
Typedefs for BSpline kernel and derivative functions.
Definition at line 277 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::DerivativeType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::DerivativeType |
Type of the derivative.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 138 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageConstPointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageConstPointer |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 143 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageSampleContainer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageSampleContainer |
FixedImageSamplePoint typedef support.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 149 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::FixedImageType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageType |
Type of the fixed Image.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 140 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::ImageDerivativesType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ImageDerivativesType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 150 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::IndexValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::IndexValueType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 152 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::InterpolatorType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::InterpolatorType |
Type of the Interpolator Base class
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 136 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFDerivativesType::IndexType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesIndexType [private] |
Definition at line 271 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFDerivativesType::RegionType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesRegionType [private] |
Definition at line 273 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFDerivativesType::SizeType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesSizeType [private] |
Definition at line 274 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Image<PDFValueType, 3> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesType |
Definition at line 223 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFDerivativesType::PixelType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesValueType [private] |
Definition at line 272 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFType::IndexType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFIndexType [private] |
Definition at line 267 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFType::RegionType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFRegionType [private] |
Definition at line 269 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFType::SizeType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFSizeType [private] |
Definition at line 270 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Image<PDFValueType, 2> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFType |
Typedef for the joint PDF and PDF derivatives are stored as ITK Images.
Definition at line 222 of file itkMattesMutualInformationImageToImageMetric.h.
typedef JointPDFType::PixelType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::JointPDFValueType [private] |
Definition at line 268 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::MeasureType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MeasureType |
Type of the measure.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 137 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageConstPointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageConstPointer |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 144 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImagePointType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImagePointType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 142 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::MovingImageType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageType |
Type of the moving Image.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 141 of file itkMattesMutualInformationImageToImageMetric.h.
typedef FixedImageType::OffsetValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::OffsetValueType |
Definition at line 154 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::ParametersType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ParametersType |
Type of the parameters.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 139 of file itkMattesMutualInformationImageToImageMetric.h.
typedef double itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::PDFValueType |
The marginal PDFs are stored as std::vector.
Definition at line 215 of file itkMattesMutualInformationImageToImageMetric.h.
typedef SmartPointer<Self> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Pointer |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 122 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Array2D<PRatioType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::PRatioArrayType [private] |
Definition at line 321 of file itkMattesMutualInformationImageToImageMetric.h.
typedef PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::PRatioType [private] |
Helper array for storing the values of the JointPDF ratios.
Definition at line 320 of file itkMattesMutualInformationImageToImageMetric.h.
typedef MattesMutualInformationImageToImageMetric itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Self |
Standard class typedefs.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 120 of file itkMattesMutualInformationImageToImageMetric.h.
typedef ImageToImageMetric<TFixedImage, TMovingImage> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Superclass |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 121 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::TransformJacobianType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformJacobianType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 135 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::TransformPointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformPointer |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 134 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::TransformType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::TransformType |
Types inherited from Superclass.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 130 of file itkMattesMutualInformationImageToImageMetric.h.
typedef Superclass::WeightsValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::WeightsValueType |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 151 of file itkMattesMutualInformationImageToImageMetric.h.
itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MattesMutualInformationImageToImageMetric | ( | ) | [protected] |
virtual itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::~MattesMutualInformationImageToImageMetric | ( | ) | [protected, virtual] |
itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MattesMutualInformationImageToImageMetric | ( | const Self & | ) | [private] |
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ComputeFixedImageParzenWindowIndices | ( | FixedImageSampleContainer & | samples | ) | [private] |
Precompute fixed image parzen window indices.
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ComputePDFDerivatives | ( | ThreadIdType | threadID, |
unsigned int | sampleNumber, | ||
int | movingImageParzenWindowIndex, | ||
const ImageDerivativesType & | movingImageGradientValue, | ||
PDFValueType | cubicBSplineDerivativeValue | ||
) | const [private] |
Compute PDF derivative contribution for each parameter.
virtual::itk::LightObject::Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::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.
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetDerivative | ( | const ParametersType & | parameters, |
DerivativeType & | Derivative | ||
) | const [virtual] |
Get the derivatives of the match measure.
Implements itk::SingleValuedCostFunction.
const JointPDFType::Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetJointPDF | ( | ) | const [inline] |
Get the internal JointPDF image that was used in creating the metric value.
Definition at line 229 of file itkMattesMutualInformationImageToImageMetric.h.
References NULL.
const JointPDFDerivativesType::Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetJointPDFDerivatives | ( | ) | const [inline] |
Get the internal JointPDFDeriviative image that was used in creating the metric derivative value. This is only created when UseExplicitPDFDerivatives is ON, and derivatives are requested.
Definition at line 245 of file itkMattesMutualInformationImageToImageMetric.h.
References NULL.
virtual const char* itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual const SizeValueType& itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::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.
virtual const bool& itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetUseExplicitPDFDerivatives | ( | ) | [virtual] |
This variable selects the method to be used for computing the Metric derivatives with respect to the Transform parameters. Two modes of computation are available. The choice between one and the other is a trade-off between computation speed and memory allocations. The two modes are described in detail below:
UseExplicitPDFDerivatives = True will compute the Metric derivative by first calculating the derivatives of each one of the Joint PDF bins with respect to each one of the Transform parameters and then accumulating these contributions in the final metric derivative array by using a bin-specific weight. The memory required for storing the intermediate derivatives is a 3D array of floating point values with size equals to the product of (number of histogram bins)^2 times number of transform parameters. This method is well suited for Transform with a small number of parameters.
UseExplicitPDFDerivatives = False will compute the Metric derivative by first computing the weights for each one of the Joint PDF bins and caching them into an array. Then it will revisit each one of the PDF bins for computing its weighted contribution to the full derivative array. In this method an extra 2D array is used for storing the weights of each one of the PDF bins. This is an array of floating point values with size equals to (number of histogram bins)^2. This method is well suited for Transforms with a large number of parameters, such as, BSplineTransforms.
MeasureType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValue | ( | const ParametersType & | parameters | ) | const [virtual] |
Get the value.
Implements itk::SingleValuedCostFunction.
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueAndDerivative | ( | const ParametersType & | parameters, |
MeasureType & | Value, | ||
DerivativeType & | Derivative | ||
) | const [virtual] |
Get the value and derivatives for single valued optimizers.
Reimplemented from itk::SingleValuedCostFunction.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueAndDerivativeThreadPostProcess | ( | ThreadIdType | threadID, |
bool | withinSampleThread | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueAndDerivativeThreadPreProcess | ( | ThreadIdType | threadID, |
bool | withinSampleThread | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual bool itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueAndDerivativeThreadProcessSample | ( | ThreadIdType | threadID, |
SizeValueType | fixedImageSample, | ||
const MovingImagePointType & | mappedPoint, | ||
double | movingImageValue, | ||
const ImageDerivativesType & | movingImageGradientValue | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueThreadPostProcess | ( | ThreadIdType | threadID, |
bool | withinSampleThread | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueThreadPreProcess | ( | ThreadIdType | threadID, |
bool | withinSampleThread | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual bool itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueThreadProcessSample | ( | ThreadIdType | threadID, |
SizeValueType | fixedImageSample, | ||
const MovingImagePointType & | mappedPoint, | ||
double | movingImageValue | ||
) | const [private, virtual] |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Initialize | ( | void | ) | throw ( ExceptionObject ) [virtual] |
Initialize the Metric by (1) making sure that all the components are present and plugged together correctly, (2) uniformly select NumberOfSpatialSamples within the FixedImageRegion, and (3) allocate memory for pdf data structures.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
static Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::Object.
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::operator= | ( | const Self & | ) | [private] |
Mutex lock to protect modification to the reference count
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::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::ImageToImageMetric< TFixedImage, TMovingImage >.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::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.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::SetUseExplicitPDFDerivatives | ( | bool | _arg | ) | [virtual] |
This variable selects the method to be used for computing the Metric derivatives with respect to the Transform parameters. Two modes of computation are available. The choice between one and the other is a trade-off between computation speed and memory allocations. The two modes are described in detail below:
UseExplicitPDFDerivatives = True will compute the Metric derivative by first calculating the derivatives of each one of the Joint PDF bins with respect to each one of the Transform parameters and then accumulating these contributions in the final metric derivative array by using a bin-specific weight. The memory required for storing the intermediate derivatives is a 3D array of floating point values with size equals to the product of (number of histogram bins)^2 times number of transform parameters. This method is well suited for Transform with a small number of parameters.
UseExplicitPDFDerivatives = False will compute the Metric derivative by first computing the weights for each one of the Joint PDF bins and caching them into an array. Then it will revisit each one of the PDF bins for computing its weighted contribution to the full derivative array. In this method an extra 2D array is used for storing the weights of each one of the PDF bins. This is an array of floating point values with size equals to (number of histogram bins)^2. This method is well suited for Transforms with a large number of parameters, such as, BSplineTransforms.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::UseExplicitPDFDerivativesOff | ( | ) | [virtual] |
This variable selects the method to be used for computing the Metric derivatives with respect to the Transform parameters. Two modes of computation are available. The choice between one and the other is a trade-off between computation speed and memory allocations. The two modes are described in detail below:
UseExplicitPDFDerivatives = True will compute the Metric derivative by first calculating the derivatives of each one of the Joint PDF bins with respect to each one of the Transform parameters and then accumulating these contributions in the final metric derivative array by using a bin-specific weight. The memory required for storing the intermediate derivatives is a 3D array of floating point values with size equals to the product of (number of histogram bins)^2 times number of transform parameters. This method is well suited for Transform with a small number of parameters.
UseExplicitPDFDerivatives = False will compute the Metric derivative by first computing the weights for each one of the Joint PDF bins and caching them into an array. Then it will revisit each one of the PDF bins for computing its weighted contribution to the full derivative array. In this method an extra 2D array is used for storing the weights of each one of the PDF bins. This is an array of floating point values with size equals to (number of histogram bins)^2. This method is well suited for Transforms with a large number of parameters, such as, BSplineTransforms.
virtual void itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::UseExplicitPDFDerivativesOn | ( | ) | [virtual] |
This variable selects the method to be used for computing the Metric derivatives with respect to the Transform parameters. Two modes of computation are available. The choice between one and the other is a trade-off between computation speed and memory allocations. The two modes are described in detail below:
UseExplicitPDFDerivatives = True will compute the Metric derivative by first calculating the derivatives of each one of the Joint PDF bins with respect to each one of the Transform parameters and then accumulating these contributions in the final metric derivative array by using a bin-specific weight. The memory required for storing the intermediate derivatives is a 3D array of floating point values with size equals to the product of (number of histogram bins)^2 times number of transform parameters. This method is well suited for Transform with a small number of parameters.
UseExplicitPDFDerivatives = False will compute the Metric derivative by first computing the weights for each one of the Joint PDF bins and caching them into an array. Then it will revisit each one of the PDF bins for computing its weighted contribution to the full derivative array. In this method an extra 2D array is used for storing the weights of each one of the PDF bins. This is an array of floating point values with size equals to (number of histogram bins)^2. This method is well suited for Transforms with a large number of parameters, such as, BSplineTransforms.
CubicBSplineDerivativeFunctionType::Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_CubicBSplineDerivativeKernel [private] |
Definition at line 317 of file itkMattesMutualInformationImageToImageMetric.h.
CubicBSplineFunctionType::Pointer itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_CubicBSplineKernel [private] |
Cubic BSpline kernel for computing Parzen histograms.
Definition at line 316 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_FixedImageBinSize [private] |
Definition at line 312 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_FixedImageNormalizedMin [private] |
Definition at line 307 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_FixedImageTrueMax [private] |
Definition at line 309 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_FixedImageTrueMin [private] |
Definition at line 308 of file itkMattesMutualInformationImageToImageMetric.h.
bool itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ImplicitDerivativesSecondPass [mutable, private] |
Definition at line 342 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_MovingImageBinSize [private] |
Definition at line 313 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<PDFValueType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_MovingImageMarginalPDF [mutable, private] |
The moving image marginal PDF.
Definition at line 329 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_MovingImageNormalizedMin [private] |
Definition at line 306 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_MovingImageTrueMax [private] |
Definition at line 311 of file itkMattesMutualInformationImageToImageMetric.h.
PDFValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_MovingImageTrueMin [private] |
Definition at line 310 of file itkMattesMutualInformationImageToImageMetric.h.
SizeValueType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_NumberOfHistogramBins [private] |
Variables to define the marginal and joint histograms.
Definition at line 305 of file itkMattesMutualInformationImageToImageMetric.h.
PRatioArrayType itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_PRatioArray [mutable, private] |
Definition at line 323 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<std::vector<PDFValueType> > itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderFixedImageMarginalPDF [mutable, private] |
Definition at line 330 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<JointPDFType::Pointer> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderJointPDF [private] |
The joint PDF and PDF derivatives.
Definition at line 333 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<JointPDFDerivativesType::Pointer> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderJointPDFDerivatives [private] |
Definition at line 334 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<int> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderJointPDFEndBin [private] |
Definition at line 337 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<int> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderJointPDFStartBin [private] |
Definition at line 336 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<PDFValueType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderJointPDFSum [mutable, private] |
Definition at line 339 of file itkMattesMutualInformationImageToImageMetric.h.
std::vector<DerivativeType> itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_ThreaderMetricDerivative [mutable, private] |
Helper variable for accumulating the derivative of the metric.
Definition at line 326 of file itkMattesMutualInformationImageToImageMetric.h.
bool itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::m_UseExplicitPDFDerivatives [private] |
Definition at line 341 of file itkMattesMutualInformationImageToImageMetric.h.
const unsigned int itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::MovingImageDimension = MovingImageType::ImageDimension [static] |
The moving image dimension.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
Definition at line 158 of file itkMattesMutualInformationImageToImageMetric.h.