]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sun, 3 Apr 2016 00:20:43 +0000 (20:20 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 3 Apr 2016 00:20:43 +0000 (20:20 -0400)
MagickCore/fourier.c

index a7fefda910fb24f46af4a4009ffd7999f597aacb..b6c4a423e13aab7dfe3894889f563c7e28114394 100644 (file)
@@ -766,8 +766,8 @@ static MagickBooleanType ForwardFourierTransform(FourierInfo *fourier_info,
     }
   }
   image_view=DestroyCacheView(image_view);
-  forward_info=AcquireVirtualMemory((size_t) fourier_info->height,
-    fourier_info->center*sizeof(*forward_pixels));
+  forward_info=AcquireVirtualMemory((size_t) fourier_info->width,
+    2*(fourier_info->height/2+1)*sizeof(*forward_pixels));
   if (forward_info == (MemoryInfo *) NULL)
     {
       (void) ThrowMagickException(exception,GetMagickModule(),
@@ -781,7 +781,7 @@ static MagickBooleanType ForwardFourierTransform(FourierInfo *fourier_info,
 #endif
   fftw_r2c_plan=fftw_plan_dft_r2c_2d(fourier_info->width,fourier_info->height,
     source_pixels,forward_pixels,FFTW_ESTIMATE);
-  fftw_execute(fftw_r2c_plan);
+  fftw_execute_dft_r2c(fftw_r2c_plan,source_pixels,forward_pixels);
   fftw_destroy_plan(fftw_r2c_plan);
   source_info=(MemoryInfo *) RelinquishVirtualMemory(source_info);
   value=GetImageArtifact(image,"fourier:normalize");
@@ -1359,12 +1359,10 @@ static MagickBooleanType InverseFourierTransform(FourierInfo *fourier_info,
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp critical (MagickCore_InverseFourierTransform)
 #endif
-  {
-    fftw_c2r_plan=fftw_plan_dft_c2r_2d(fourier_info->width,fourier_info->height,
-      fourier_pixels,source_pixels,FFTW_ESTIMATE);
-    fftw_execute(fftw_c2r_plan);
-    fftw_destroy_plan(fftw_c2r_plan);
-  }
+  fftw_c2r_plan=fftw_plan_dft_c2r_2d(fourier_info->width,fourier_info->height,
+    fourier_pixels,source_pixels,FFTW_ESTIMATE);
+  fftw_execute_dft_c2r(fftw_c2r_plan,fourier_pixels,source_pixels);
+  fftw_destroy_plan(fftw_c2r_plan);
   i=0L;
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0L; y < (ssize_t) fourier_info->height; y++)