From: nicolas Date: Wed, 1 Aug 2012 20:10:48 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~5208 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ac6194d7f14f5c3cb3e96be477874482cfc21b7;p=imagemagick --- diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index 16e71ec42..96ce8b6d3 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -3388,16 +3388,19 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image, /* Scaled sigmoidal formula with better 'contrast=0' or * 'flatline' handling (greyscale): * - * ( 1/(1+exp(a*(b-u))) - (1/(1+exp(a*b)) + 1/(1+exp(a*(b-1))))/2 ) - * / ( 1/(1+exp(a*(b-1))) - 1/(1+exp(a*b)) + epsilon ) + 0.5 + * 0.5 + + * ( 1/(1+exp(a*(b-u))) - (1/(1+exp(a*b)) + 1/(1+exp(a*(b-1))))/2 ) + * / ( 1/(1+exp(a*(b-1))) - 1/(1+exp(a*b)) + epsilon ) * - * "+ 0.5" is to center things around the middle of the Quantum + * "0.5 +" is to center things around the middle of the Quantum * range. * * "+epsilon" is to allow a=0 without division by zero. + * + * "+0.5" below is to round by casting. */ sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType) - (MaxMap*((uu-(u0+u1)/2.0)/(u1-u0+MagickEpsilon)+0.5))); + (MaxMap*(0.5+(uu-(u0+u1)/2.0)/(u1-u0+MagickEpsilon))+0.5)); #else /* Scaled sigmoidal formula: (1/(1+exp(a*(b-u))) - 1/(1+exp(a*b))) * / @@ -3406,7 +3409,7 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image, * "+0.5" below is to round by casting. */ sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType) - (MaxMap*((uu-u0)/(u1-u0))+0.5)); + (MaxMap*((uu-u0)/(u1-u0))+0.5)); #endif continue; }