[ITK-users] Bug in itkMattesMutualInformationImageToImageMetric.hxx ?

Ivan Setiawan ivans at yahoo.co.jp
Fri May 1 02:54:45 EDT 2015


Hi all,
My name is Ivan, and currently I am developing an image registration software based on ITK.
Thank you for providing such a good library!

I think, I found a bug for determining the voxel's value range in itkMattesMutualInformationImageToImageMetric.hxx.

In the ::Initialize(void) method, the initial value of this->m_FixedImageTrueMax and this->m_MovingImageTrueMax should be set to
    std::numeric_limits<typename TFixedImage::PixelType>::lowest()  /* i.e., the most negative value, = -340282346638528860000000000000000000000.000000 for float-type image */
instead of
    std::numeric_limits<typename TFixedImage::PixelType>::min() /* = 1.17549e-038 for float-type image. */


The code lines are:
    this->m_FixedImageTrueMax = std::numeric_limits<typename TFixedImage::PixelType>::min(); // should be lowest() instead of min()?
    this->m_MovingImageTrueMax = std::numeric_limits<typename TMovingImage::PixelType>::min(); // should be lowest() instead of min()?


Problem will not appear when using short-type image, but when a float-type image with all negative voxel's value is used as input, then the initial m_FixedImageTrueMax will NOT be updated to the correct negative maximum value.

Could you please tell me your opinion?

Thank you very much for your attention.

Best regards,
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20150501/539f9588/attachment.html>


More information about the Insight-users mailing list