]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 9 Oct 2013 00:31:52 +0000 (00:31 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 9 Oct 2013 00:31:52 +0000 (00:31 +0000)
MagickCore/fourier.c

index ab17cf6a387594f2b852b2bac2cc82aaf8256cb6..146ea219cffcc7d4f5accf9b2b27c9bc7add74c5 100644 (file)
@@ -60,6 +60,7 @@
 #include "MagickCore/property.h"
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/resource_.h"
+#include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
 #if defined(MAGICKCORE_FFTW_DELEGATE)
 #if defined(MAGICKCORE_HAVE_COMPLEX_H)
@@ -139,12 +140,18 @@ MagickExport Image *ComplexImages(const Image *images,
     *Ci_view,
     *Cr_view;
 
+  const char
+    *artifact;
+
   const Image
     *Ai_image,
     *Ar_image,
     *Bi_image,
     *Br_image;
 
+  double
+    snr;
+
   Image
     *Ci_image,
     *complex_images,
@@ -197,6 +204,10 @@ MagickExport Image *ComplexImages(const Image *images,
   /*
     Apply complex mathematics to image pixels.
   */
+  artifact=GetImageArtifact(image,"complex:snr");
+  snr=0.0;
+  if (artifact != (const char *) NULL)
+    snr=StringToDouble(artifact,(char **) NULL);
   Ar_image=images;
   Ai_image=images->next;
   Br_image=images;
@@ -278,7 +289,7 @@ MagickExport Image *ComplexImages(const Image *images,
             double
               gamma;
 
-            gamma=PerceptibleReciprocal(Br[i]*Br[i]+Bi[i]*Bi[i]);
+            gamma=PerceptibleReciprocal(Br[i]*Br[i]+Bi[i]*Bi[i]+snr);
             Cr[i]=gamma*(Ar[i]*Br[i]+Ai[i]*Bi[i]);
             Ci[i]=gamma*(Ai[i]*Br[i]-Ar[i]*Bi[i]);
             break;