Include declarations.
*/
#include "MagickCore/studio.h"
+#include "MagickCore/artifact.h"
#include "MagickCore/attribute.h"
#include "MagickCore/blob.h"
#include "MagickCore/cache.h"
#include "MagickCore/memory_.h"
#include "MagickCore/monitor.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
#include "MagickCore/property.h"
#include "MagickCore/quantum-private.h"
#include "MagickCore/resource_.h"
CacheView
*image_view;
+ const char
+ *value;
+
double
- gamma,
*source_pixels;
fftw_complex
fftw_execute(fftw_r2c_plan);
fftw_destroy_plan(fftw_r2c_plan);
source_info=(MemoryInfo *) RelinquishVirtualMemory(source_info);
- /*
- Normalize Fourier transform.
- */
- i=0L;
- gamma=PerceptibleReciprocal((double) fourier_info->width*
- fourier_info->height);
- for (y=0L; y < (ssize_t) fourier_info->height; y++)
- for (x=0L; x < (ssize_t) fourier_info->center; x++)
+ value=GetImageArtifact(image,"fourier:normalize");
+ if ((value == (const char *) NULL) || (LocaleCompare(value,"fft") == 0))
{
+ double
+ gamma;
+
+ /*
+ Normalize Fourier transform.
+ */
+ i=0L;
+ gamma=PerceptibleReciprocal((double) fourier_info->width*
+ fourier_info->height);
+ for (y=0L; y < (ssize_t) fourier_info->height; y++)
+ for (x=0L; x < (ssize_t) fourier_info->center; x++)
+ {
#if defined(MAGICKCORE_HAVE_COMPLEX_H)
- forward_pixels[i]*=gamma;
+ forward_pixels[i]*=gamma;
#else
- forward_pixels[i][0]*=gamma;
- forward_pixels[i][1]*=gamma;
+ forward_pixels[i][0]*=gamma;
+ forward_pixels[i][1]*=gamma;
#endif
- i++;
+ i++;
+ }
}
/*
Generate magnitude and phase (or real and imaginary).
CacheView
*image_view;
+ const char
+ *value;
+
double
*source_pixels;
return(MagickFalse);
}
source_pixels=(double *) GetVirtualMemoryBlob(source_info);
+ value=GetImageArtifact(image,"fourier:normalize");
+ if ((value == (const char *) NULL) || (LocaleCompare(value,"fft") == 0))
+ {
+ double
+ gamma;
+
+ /*
+ Normalize inverse transform.
+ */
+ i=0L;
+ gamma=PerceptibleReciprocal((double) fourier_info->width*
+ fourier_info->height);
+ for (y=0L; y < (ssize_t) fourier_info->height; y++)
+ for (x=0L; x < (ssize_t) fourier_info->center; x++)
+ {
+#if defined(MAGICKCORE_HAVE_COMPLEX_H)
+ fourier_pixels[i]*=gamma;
+#else
+ fourier_pixels[i][0]*=gamma;
+ fourier_pixels[i][1]*=gamma;
+#endif
+ i++;
+ }
+ }
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp critical (MagickCore_InverseFourierTransform)
#endif
#define MagickppLibVersionText "7.0.0"
#define MagickppLibVersionNumber @MAGICKPP_LIB_VERSION_NUMBER@
#define MagickppLibAddendum "-0"
-#define MagickppLibInterface 2
-#define MagickppLibMinInterface 2
-#define MagickReleaseDate "2013-08-28"
+#define MagickppLibInterface 1
+#define MagickppLibMinInterface 1
+#define MagickReleaseDate "2013-09-15"
#define MagickChangeDate "20120427"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#define MagickFeatures "DPC HDRI OpenMP"
\-matte store matte channel if the image has one
\-monitor monitor progress
\-ping efficiently determine image attributes
+ \-precision value maximum number of significant digits to print
\-quiet suppress all warning messages
\-regard-warnings pay attention to warning messages
\-respect-parentheses settings remain in effect until parenthesis boundary
virtual pixel access method
Image Operators:
+ \-grayscale method convert image to grayscale
\-negate replace each pixel with its complementary color
Miscellaneous Options: