#include <itkMattesMutualInformationImageToImageMetric.h>
Inheritance diagram for itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >:
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 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 116 of file itkMattesMutualInformationImageToImageMetric.h.
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 125 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type used for representing point components Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 146 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the derivative. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 139 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 143 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Index and Point typedef support. Definition at line 149 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Definition at line 150 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Definition at line 152 of file itkMattesMutualInformationImageToImageMetric.h. Referenced by itk::MattesMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::FixedImageSpatialSample::FixedImageSpatialSample(). |
|
FixedImageSpatialSample typedef support. Definition at line 231 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the fixed Image. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 141 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the Interpolator Base class Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 137 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the measure. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 138 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Definition at line 144 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Definition at line 151 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Definition at line 153 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the moving Image. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 142 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Type of the parameters. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 140 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 124 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Standard class typedefs. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 122 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 123 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 136 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 135 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Types inherited from Superclass. Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. Definition at line 134 of file itkMattesMutualInformationImageToImageMetric.h. |
|
|
|
Definition at line 208 of file itkMattesMutualInformationImageToImageMetric.h. |
|
Get the derivatives of the match measure. Implements itk::SingleValuedCostFunction. |
|
Run-time type information (and related methods). Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >. |
|
Number of bins to used in the histogram. Typical value is 50. |
|
Number of spatial samples to used to compute metric |
|
Select whether the metric will be computed using all the pixels on the fixed image region, or only using a set of randomly selected pixels. |
|
Get the value. Implements itk::SingleValuedCostFunction. |
|
Get the value and derivatives for single valued optimizers. Reimplemented from itk::SingleValuedCostFunction. |
|
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 >. |
|
The moving image dimension. |
|
Method for creation through the object factory. Reimplemented from itk::Object. |
|
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 >. |
|
Provide API to reinitialize the seed of the random number generator |
|
Provide API to reinitialize the seed of the random number generator |
|
Uniformly select a sample set from the fixed image domain. |
|
Gather all the pixels from the fixed image domain. |
|
Number of bins to used in the histogram. Typical value is 50. |
|
Number of spatial samples to used to compute metric |
|
Select whether the metric will be computed using all the pixels on the fixed image region, or only using a set of randomly selected pixels. |
|
Transform a point from FixedImage domain to MovingImage domain. This function also checks if mapped point is within support region. |
|
Select whether the metric will be computed using all the pixels on the fixed image region, or only using a set of randomly selected pixels. |
|
Select whether the metric will be computed using all the pixels on the fixed image region, or only using a set of randomly selected pixels. |
|
Container to store a set of points and fixed image values. Definition at line 234 of file itkMattesMutualInformationImageToImageMetric.h. |