[Insight-users] Differences in Mutual Information Metrices

Karthik Krishnan Karthik.Krishnan at kitware.com
Fri Apr 8 11:10:35 EDT 2005


Dear Jan,

The first two metrics obtain the image intensities (the set of image intensities for which mutual information is computed) by randomly sampling the image space. Since the set of intensities is discrete, it is smoothed with a kernel function. (Mattes uses a gaussian and the second the uses a BSpline, the advantage being finite support). [Luis recently added the UseAllPixels() option to Mattes. This disables random sampling and uses every fixed image sample]. 

The HistogramImageToImageMetrics compute mutual information from the joint histograms and do not use random sampling. Consequently there is no kernel density estimation etc... 
MutualInformationHistogramImageToImageMetric:
The GetValue() computes the mutual information as  I(A,B) = H(A,B) - H(A) - H(B). Implementations of derivatives are simpler too, unlike the first two metrics. They are computed using finite differences from GetValue.

NormalizedMutualInformationHistogram.. This is similar but uses a normalized variant: [H(A) + H(B)]/H(A,B)
C. Studholme, D.J. Hawkes, and D.L.G. Hill, An overlap invariant entropy measure of 3d medical image alignment, Pattern Recognition, vol. 32, pp. 71-86, 1999.

Thanks
Regards
Karthik



Jan Schreiber wrote:

>Hi, 
>
>does anyone know, where I can find information about the differences of
>the several Mutual Information Metrices implemented in ITK?
>
>itk::MattesMutualInformationImageToImageMetric
>and
>itk::MutualInformationImageToImageMetric
>
>are well described in the SoftwareGuide and in the Doxygen
>documentation but I could not find much information on
>
>itk::MutualInformationHistogramImageToImageMetric
>and
>itk::NormalizedMutualInformationHistogramImageToImageMetric
>
>Do you know the pros and contras of these metrices and which optimizers
>I can/ should use with the Histogram-versions? Do I have to pre-process
>the images first?
>
>The first two seem to use random samples for the calculation which
>makes me a bit suspicious... The OnePlusOneEvolutionaryOptimizer used in
>ImageRegistration14.cxx is initialized with a random variate generator.
>Why do all these methods use a random variable?
>
>Thanks in advance, 
>Jan
>
>_______________________________________________
>Insight-users mailing list
>Insight-users at itk.org
>http://www.itk.org/mailman/listinfo/insight-users
>
>  
>



More information about the Insight-users mailing list