]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 8 Oct 2011 13:33:25 +0000 (13:33 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 8 Oct 2011 13:33:25 +0000 (13:33 +0000)
MagickCore/draw.c
MagickCore/gem.c

index 135625a7d8d841a1bf873f011c6daf0640368877..b22152da6c2c5d6245b80c1aa478e19e4a6de0da 100644 (file)
@@ -2601,7 +2601,8 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
               linejoin;
 
             GetMagickToken(q,&q,token);
-            linejoin=ParseCommandOption(MagickLineJoinOptions,MagickFalse,token);
+            linejoin=ParseCommandOption(MagickLineJoinOptions,MagickFalse,
+              token);
             if (linejoin == -1)
               status=MagickFalse;
             else
index f8cc39512fd2f4471bb426d19725f716385face3..d20d4c0fb6edbfeac983f0b44f29c2a12de84924 100644 (file)
@@ -607,14 +607,13 @@ MagickExport double ExpandAffine(const AffineMatrix *affine)
 MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
   const Quantum pixel,const NoiseType noise_type,const double attenuate)
 {
-#define NoiseEpsilon  (attenuate*1.0e-5)
-#define SigmaUniform  (attenuate*4.0)
-#define SigmaGaussian  (attenuate*4.0)
-#define SigmaImpulse  (attenuate*0.10)
-#define SigmaLaplacian (attenuate*10.0)
-#define SigmaMultiplicativeGaussian  (attenuate*1.0)
-#define SigmaPoisson  (attenuate*0.05)
-#define TauGaussian  (attenuate*20.0)
+#define SigmaUniform  (attenuate*0.015625)
+#define SigmaGaussian  (attenuate*0.015625)
+#define SigmaImpulse  (attenuate*0.1)
+#define SigmaLaplacian (attenuate*0.0390625)
+#define SigmaMultiplicativeGaussian  (attenuate*0.5)
+#define SigmaPoisson  (attenuate*0.05/0.0001953125)
+#define TauGaussian  (attenuate*0.078125)
 
   double
     alpha,
@@ -623,13 +622,12 @@ MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
     sigma;
 
   alpha=GetPseudoRandomValue(random_info);
-  alpha=1.0;
   switch (noise_type)
   {
     case UniformNoise:
     default:
     {
-      noise=(double) pixel+QuantumRange*SigmaUniform*(alpha-0.5)/255.0;
+      noise=(double) pixel+QuantumRange*SigmaUniform*(alpha-0.5);
       break;
     }
     case GaussianNoise:
@@ -644,18 +642,8 @@ MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
       gamma=sqrt(-2.0*log(alpha));
       sigma=gamma*cos((double) (2.0*MagickPI*beta));
       tau=gamma*sin((double) (2.0*MagickPI*beta));
-      noise=(double) pixel+sqrt((double) pixel)*SigmaGaussian*sigma/255.0+
-        QuantumRange*TauGaussian*tau/255.0;
-      break;
-    }
-    case MultiplicativeGaussianNoise:
-    {
-      sigma=1.0;
-      if (alpha > NoiseEpsilon)
-        sigma=sqrt(-2.0*log(alpha));
-      beta=GetPseudoRandomValue(random_info);
-      noise=(double) pixel+pixel*SigmaMultiplicativeGaussian*sigma*
-        cos((double) (2.0*MagickPI*beta))/2.0/255.0;
+      noise=(double) pixel+sqrt((double) pixel)*SigmaGaussian*sigma+
+        QuantumRange*TauGaussian*tau;
       break;
     }
     case ImpulseNoise:
@@ -673,19 +661,28 @@ MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
     {
       if (alpha <= 0.5)
         {
-          if (alpha <= NoiseEpsilon)
+          if (alpha <= MagickEpsilon)
             noise=(double) pixel-(double) QuantumRange;
           else
             noise=(double) pixel+QuantumRange*SigmaLaplacian*
-              log(2.0*alpha)/255.0+0.5;
+              log(2.0*alpha)+0.5;
           break;
         }
       beta=1.0-alpha;
-      if (beta <= (0.5*NoiseEpsilon))
+      if (beta <= (0.5*MagickEpsilon))
         noise=(double) (pixel+QuantumRange);
       else
-        noise=(double) pixel-QuantumRange*SigmaLaplacian*log(2.0*beta)/255.0+
-          0.5;
+        noise=(double) pixel-QuantumRange*SigmaLaplacian*log(2.0*beta)+0.5;
+      break;
+    }
+    case MultiplicativeGaussianNoise:
+    {
+      sigma=1.0;
+      if (alpha > MagickEpsilon)
+        sigma=sqrt(-2.0*log(alpha));
+      beta=GetPseudoRandomValue(random_info);
+      noise=(double) pixel+pixel*SigmaMultiplicativeGaussian*sigma*
+        cos((double) (2.0*MagickPI*beta))/2.0;
       break;
     }
     case PoissonNoise:
@@ -696,13 +693,13 @@ MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
       register ssize_t
         i;
 
-      poisson=exp(-SigmaPoisson*255.0*QuantumScale*pixel);
+      poisson=exp(-SigmaPoisson*QuantumScale*pixel);
       for (i=0; alpha > poisson; i++)
       {
         beta=GetPseudoRandomValue(random_info);
         alpha*=beta;
       }
-      noise=(double) QuantumRange*i/SigmaPoisson/255.0;
+      noise=(double) QuantumRange*i/SigmaPoisson;
       break;
     }
     case RandomNoise: