#include <itkNormalizedMutualInformationHistogramImageToImageMetric.h>
Computes normalized mutual information between two images to be registered using the histograms of the intensities in the images.
The type of Normalize Mutual Information implemented in this class is given by the equation
\[ \frac{ H(A) + H(B) }{ H(A,B) } \]
Where $ H(A) $ is the entropy of image $ A $, $ H(B) $ is the entropy of image $ B $, and $ H(A,B) $ is the joint entropy of images $ A $ and $ B $.
Details of this implementation can be found in the book "Medical Image Registration" by Hajnal, Hill and Hawkes. The book is available online at https://books.google.com/books?id=2dtQNsk-qBQC The implementation of this class corresponds to equation (30) in Chapter 3 of this book. Note that by slightly changing this class it will be trivial to compute the Normalized Mutual Information measures defined in equations (28) and (29) of the same book.
This class is templated over the type of the fixed and moving images to be compared.
Definition at line 52 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Protected Member Functions | |
MeasureType | EvaluateMeasure (HistogramType &histogram) const override |
NormalizedMutualInformationHistogramImageToImageMetric ()=default | |
~NormalizedMutualInformationHistogramImageToImageMetric () override=default | |
![]() | |
void | ComputeHistogram (const TransformParametersType ¶meters, HistogramType &histogram) const |
void | ComputeHistogram (const TransformParametersType ¶meters, unsigned int parameter, double step, HistogramType &histogram) const |
void | CopyHistogram (HistogramType &target, HistogramType &source) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
HistogramImageToImageMetric () | |
~HistogramImageToImageMetric () override=default | |
![]() | |
virtual void | ComputeImageDerivatives (const MovingImagePointType &mappedPoint, ImageDerivativesType &gradient, ThreadIdType threadId) const |
void | GetValueAndDerivativeMultiThreadedInitiate () const |
void | GetValueAndDerivativeMultiThreadedPostProcessInitiate () const |
virtual void | GetValueAndDerivativeThread (ThreadIdType threadId) const |
virtual void | GetValueAndDerivativeThreadPostProcess (ThreadIdType threadId, bool withinSampleThread) const |
virtual void | GetValueAndDerivativeThreadPreProcess (ThreadIdType threadId, bool withinSampleThread) const |
virtual bool | GetValueAndDerivativeThreadProcessSample (ThreadIdType threadId, SizeValueType fixedImageSample, const MovingImagePointType &mappedPoint, double movingImageValue, const ImageDerivativesType &movingImageGradientValue) const |
void | GetValueMultiThreadedInitiate () const |
void | GetValueMultiThreadedPostProcessInitiate () const |
virtual void | GetValueThread (ThreadIdType threadId) const |
ImageToImageMetric () | |
virtual void | PreComputeTransformValues () |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SampleFixedImageIndexes (FixedImageSampleContainer &samples) const |
virtual void | SampleFixedImageRegion (FixedImageSampleContainer &samples) const |
virtual void | SampleFullFixedImageRegion (FixedImageSampleContainer &samples) const |
virtual void | SynchronizeTransforms () const |
virtual void | TransformPoint (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ThreadIdType threadId) const |
virtual void | TransformPointWithDerivatives (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ImageDerivativesType &movingImageGradient, ThreadIdType threadId) const |
~ImageToImageMetric () override=default | |
virtual void | GetValueThreadPreProcess (ThreadIdType threadId, bool withinSampleThread) const |
virtual bool | GetValueThreadProcessSample (ThreadIdType threadId, SizeValueType fixedImageSample, const MovingImagePointType &mappedPoint, double movingImageValue) const |
virtual void | GetValueThreadPostProcess (ThreadIdType threadId, bool withinSampleThread) const |
![]() | |
SingleValuedCostFunction ()=default | |
~SingleValuedCostFunction () override | |
![]() | |
CostFunctionTemplate ()=default | |
CostFunctionTemplate ()=default | |
~CostFunctionTemplate () override=default | |
~CostFunctionTemplate () override=default | |
![]() | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
~Object () override | |
![]() | |
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 () |
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 62 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::FixedImageType |
Type of the fixed Image.
Definition at line 64 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::GradientPixelType |
Definition at line 59 of file itkImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::HistogramFrequencyType = typename HistogramType::AbsoluteFrequencyType |
Definition at line 86 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::HistogramIteratorType = typename HistogramType::Iterator |
Definition at line 87 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::HistogramMeasurementVectorType = typename HistogramType::MeasurementVectorType |
Definition at line 88 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::HistogramImageToImageMetric< TFixedImage, TMovingImage >::HistogramType |
Typedefs for histogram. This should have been defined as Histogram<RealType,2> but a bug in VC++7 produced an internal compiler error with such declaration.
Definition at line 74 of file itkHistogramImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::MovingImageType |
Type of the moving Image.
Definition at line 66 of file itkImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self> |
Definition at line 61 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::RealType |
Gaussian filter to compute the gradient of the Moving Image
Definition at line 54 of file itkImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::Self = NormalizedMutualInformationHistogramImageToImageMetric |
Standard class type aliases.
Definition at line 59 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >::Superclass = HistogramImageToImageMetric<TFixedImage, TMovingImage> |
Definition at line 60 of file itkNormalizedMutualInformationHistogramImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformJacobianType |
Definition at line 58 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformParametersType |
Definition at line 57 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformPointer |
Definition at line 56 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformType |
Type of the Transform Base class
Definition at line 55 of file itkImageToImageMetric.h.
|
protecteddefault |
Constructor is protected to ensure that New()
function is used to create instances.
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
Constructor is protected to ensure that New()
function is used to create instances.
|
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::LightObject.
|
overrideprotectedvirtual |
Evaluates the normalized mutual information from the histogram.
Implements itk::HistogramImageToImageMetric< TFixedImage, TMovingImage >.
|
overridevirtual |
Reimplemented from itk::HistogramImageToImageMetric< TFixedImage, TMovingImage >.
References NormalizedMutualInformationHistogramImageToImageMetric().
|
static |
Method for creation through the object factory.