ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkMattesMutualInformationImageToImageMetricv4.h>
Static Public Member Functions | |
static Pointer | New () |
Static Public Attributes | |
static const ImageDimensionType | FixedImageDimension = ::itk::GetImageDimension<TFixedImage>::ImageDimension |
static const ImageDimensionType | MovingImageDimension = ::itk::GetImageDimension<TMovingImage>::ImageDimension |
static const ImageDimensionType | VirtualImageDimension = ::itk::GetImageDimension<TVirtualImage>::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage > | |
Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage > | |
static const DimensionType | FixedDimension |
static const DimensionType | MovingDimension |
static const DimensionType | VirtualDimension |
Private Member Functions | |
virtual void | ComputeResults (void) const |
MattesMutualInformationImageToImageMetricv4 (const Self &) | |
void | operator= (const Self &) |
Private Attributes | |
bool | m_ComputeDerivative |
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.
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.
Definition at line 96 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef SmartPointer<const Self> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 104 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 224 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Typedefs for BSpline kernel and derivative functions.
Definition at line 223 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::DerivativeType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType |
Type of the metric derivative.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 114 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef DerivativeType::ValueType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeValueType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 115 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedImageGradientType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageGradientType |
Image derivatives types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 121 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedImageIndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageIndexType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 119 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedImagePixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 120 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedImagePointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 118 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedImageType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageType |
Image-accessor typedefs
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 117 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::FixedSampledPointSetPointer itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedSampledPointSetPointer |
Types inherited from Superclass.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 135 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::JacobianType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JacobianType |
Jacobian type. This is the same for all transforms
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 128 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 217 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 219 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 220 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Image<PDFValueType, 3> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JointPDFDerivativesType |
Definition at line 167 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 218 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 213 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 215 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 216 of file itkMattesMutualInformationImageToImageMetricv4.h.
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 166 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 214 of file itkMattesMutualInformationImageToImageMetricv4.h.
protected |
Definition at line 207 of file itkMattesMutualInformationImageToImageMetricv4.h.
protected |
Definition at line 209 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::MeasureType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MeasureType |
Superclass types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 110 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::MovingImageGradientType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageGradientType |
Image derivatives types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 125 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::MovingImagePixelType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 124 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::MovingImagePointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 123 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::MovingTransformType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformType |
Type of the Transform Base classes
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 127 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef double itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PDFValueType |
The marginal PDFs are stored as std::vector.
Definition at line 163 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef SmartPointer<Self> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 103 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 249 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Helper array for storing the values of the JointPDF ratios.
Definition at line 248 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef MattesMutualInformationImageToImageMetricv4 itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self |
Standard class typedefs.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 101 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage> itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Superclass |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 102 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::VirtualImageType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageType |
Types for the virtual domain
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 129 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::VirtualIndexType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualIndexType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 130 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::VirtualPointSetType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointSetType |
Point set in the virtual domain
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 132 of file itkMattesMutualInformationImageToImageMetricv4.h.
typedef Superclass::VirtualPointType itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 131 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
|
protectedvirtual |
|
private |
|
privatevirtual |
Perform the final step in computing results
|
protected |
|
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.
|
inline |
Get the internal JointPDF image that was used in creating the metric value.
Definition at line 173 of file itkMattesMutualInformationImageToImageMetricv4.h.
References NULL.
|
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 189 of file itkMattesMutualInformationImageToImageMetricv4.h.
References NULL.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
virtual |
Number of bins to used in the histogram. Typical value is
|
virtual |
Calculate and return the value for the metric based on the current transformation(s). The result is both returned, and stored in the m_Value member variable.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
virtual |
Calculate and return both the value for the metric and its derivative. Overloaded here to provide special handling.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
protectedvirtual |
Post-processing code common to both GetValue and GetValueAndDerivative.
|
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 >.
|
static |
Method for creation through the object factory.
Reimplemented from itk::Object.
|
private |
Mutex lock to protect modification to the reference count
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
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::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
virtual |
Number of bins to used in the histogram. Typical value is
|
friend |
Definition at line 204 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
friend |
Definition at line 205 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 139 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprivate |
Flag to control whether derivative is computed in addition to metric value
Definition at line 282 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 245 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Cubic BSpline kernel for computing Parzen histograms.
Definition at line 244 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 240 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 235 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 237 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 236 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
Helper array for storing per-parameter linearized index to retrieve the pRatio during evaluation with local-support transform.
Definition at line 255 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
Store the per-point local derivative result by parzen window bin. For local-support transforms only.
Definition at line 272 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 241 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
The moving image marginal PDF.
Definition at line 258 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 234 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 239 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 238 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Variables to define the marginal and joint histograms.
Definition at line 233 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
Definition at line 251 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
Definition at line 259 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
The joint PDF and PDF derivatives.
Definition at line 262 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 263 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 266 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
protected |
Definition at line 265 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
mutableprotected |
Definition at line 268 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 140 of file itkMattesMutualInformationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 138 of file itkMattesMutualInformationImageToImageMetricv4.h.