From 18b6989dc96ba030f2aa7a23f3bbea06636e9bac Mon Sep 17 00:00:00 2001 From: Cristy Date: Wed, 13 Dec 2017 21:13:26 -0500 Subject: [PATCH] Correct overall entropy calculation --- MagickCore/statistic.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c index cc6b5aa1f..3fc4f07af 100644 --- a/MagickCore/statistic.c +++ b/MagickCore/statistic.c @@ -1348,6 +1348,8 @@ static size_t GetImageChannels(const Image *image) PixelTrait traits = GetPixelChannelTraits(image,channel); if (traits == UndefinedPixelTrait) continue; + if ((traits & UpdatePixelTrait) == 0) + continue; channels++; } return((size_t) (channels == 0 ? 1 : channels)); @@ -2141,17 +2143,22 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image, } channel_statistics[CompositePixelChannel].mean=0.0; channel_statistics[CompositePixelChannel].standard_deviation=0.0; + channel_statistics[CompositePixelChannel].entropy=0.0; for (i=0; i < (ssize_t) MaxPixelChannels; i++) { channel_statistics[CompositePixelChannel].mean+= channel_statistics[i].mean; channel_statistics[CompositePixelChannel].standard_deviation+= channel_statistics[i].standard_deviation; + channel_statistics[CompositePixelChannel].entropy+= + channel_statistics[i].entropy; } channel_statistics[CompositePixelChannel].mean/=(double) GetImageChannels(image); channel_statistics[CompositePixelChannel].standard_deviation/=(double) GetImageChannels(image); + channel_statistics[CompositePixelChannel].entropy/=(double) + GetImageChannels(image); if (y < (ssize_t) image->rows) channel_statistics=(ChannelStatistics *) RelinquishMagickMemory( channel_statistics); -- 2.50.1