#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)
*Ci_view,
*Cr_view;
+ const char
+ *artifact;
+
const Image
*Ai_image,
*Ar_image,
*Bi_image,
*Br_image;
+ double
+ snr;
+
Image
*Ci_image,
*complex_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;
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;