]> granicus.if.org Git - imagemagick/commitdiff
Reverted radius for local contrast to a percentage instead of pixels.
authordirk <dirk@git.imagemagick.org>
Sat, 26 Mar 2016 10:41:05 +0000 (11:41 +0100)
committerdirk <dirk@git.imagemagick.org>
Sat, 26 Mar 2016 10:41:05 +0000 (11:41 +0100)
MagickCore/accelerate.c
MagickCore/effect.c
MagickWand/mogrify.c
MagickWand/operation.c

index 38e373197d5ada43730c108166db868de3ca33e2..0cb36f6db6e20d004e266d9d639f3848a949301d 100644 (file)
@@ -4278,7 +4278,7 @@ static Image *ComputeLocalContrastImage(const Image *image,
     {
       imageColumns = (unsigned int) image->columns;
       imageRows = (unsigned int) image->rows;
-      iRadius = (cl_int) fabs(radius);
+      iRadius = (cl_int) (image->rows > image->columns ? image->rows : image->columns) * 0.002f * fabs(radius); // Normalized radius, 100% gives blur radius of 20% of the largest dimension
 
       passes = ((1.0f * imageColumns) * imageColumns * iRadius) / 4000000000.0f;
       passes = (passes < 1) ? 1: passes;
index fe1ea153e84692ecd9f40ee56de134ff1b36b0a0..75ac4f1a29807502663919a77145d33c9772689b 100644 (file)
@@ -1661,8 +1661,8 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius,
 %
 %    o image: the image.
 %
-%    o radius: the radius of the Gaussian, in pixels, not counting
-%      the center pixel.
+%    o radius: the radius of the Gaussian blur, in percentage with 100%
+%      resulting in a blur radius of 20% of largest dimension.
 %
 %    o strength: the strength of the blur mask in percentage.
 %
@@ -1718,7 +1718,6 @@ MagickExport Image *LocalContrastImage(const Image *image,const double radius,
   image_view=AcquireVirtualCacheView(image,exception);
   contrast_view=AcquireAuthenticCacheView(contrast_image,exception);
   thread_count=1;
-  width=(ssize_t) fabs(radius);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel magick_threads(image,image,image->rows,1)
   {
@@ -1729,6 +1728,7 @@ MagickExport Image *LocalContrastImage(const Image *image,const double radius,
   }
 #endif
   scanLineSize=(ssize_t) MagickMax(image->columns,image->rows);
+  width=(ssize_t) scanLineSize*0.002f*fabs(radius);
   scanLineSize+=(2*width);
   scanLinePixels_info=AcquireVirtualMemory((size_t) thread_count*
     scanLineSize,sizeof(*scanLinePixels));
index 0c4a3b4b8af5f1195fadc64022026f38c1e1c7a9..13cbee520195fe6f90b7028778256a3294b6a962 100644 (file)
@@ -2063,9 +2063,6 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
               geometry_info.rho=10;
             if ((flags & SigmaValue) == 0)
               geometry_info.sigma=12.5;
-            if (((flags & RhoValue) == 0) || ((flags & PercentValue) != 0))
-              geometry_info.rho*=MagickMax((*image)->columns,(*image)->rows)/
-                100.0;
             mogrify_image=LocalContrastImage(*image,geometry_info.rho,
               geometry_info.sigma,exception);
             break;
index 496b9e0c4480212df7c9805f18f2270aa714a38f..e1e95f00f8552b7745c5177b9d46168bb713ea3c 100644 (file)
@@ -2722,8 +2722,6 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
             geometry_info.rho=10;
           if ((flags & SigmaValue) == 0)
             geometry_info.sigma=12.5;
-          if (((flags & RhoValue) == 0) || ((flags & PercentValue) != 0))
-            geometry_info.rho*=MagickMax(_image->columns,_image->rows)/100.0;
           new_image=LocalContrastImage(_image,geometry_info.rho,
             geometry_info.sigma,exception);
           break;