]> granicus.if.org Git - imagemagick/blobdiff - filters/analyze.c
(no commit message)
[imagemagick] / filters / analyze.c
index 4cb46a374565a32a192ad829854e3881ccc56fff..1e4a785808dd3e5e9e17aa89da213954319d18c7 100644 (file)
@@ -15,7 +15,7 @@
 %                              December 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -145,7 +145,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
     status=MagickTrue;
     image_view=AcquireCacheView(image);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
-    #pragma omp parallel for schedule(dynamic,4) shared(status)
+    #pragma omp parallel for schedule(static,4) shared(status)
 #endif
     for (y=0; y < (ssize_t) image->rows; y++)
     {
@@ -186,13 +186,15 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
       break;
     brightness_mean=brightness_sum_x/area;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_mean);
-    (void) SetImageProperty(image,"filter:brightness:mean",text);
+    (void) SetImageProperty(image,"filter:brightness:mean",text,
+      exception);
     brightness_standard_deviation=sqrt(brightness_sum_x2/area-(brightness_sum_x/
       area*brightness_sum_x/area));
     (void) FormatLocaleString(text,MaxTextExtent,"%g",
       brightness_standard_deviation);
-    (void) SetImageProperty(image,"filter:brightness:standard-deviation",text);
-    if (brightness_standard_deviation != 0)
+    (void) SetImageProperty(image,"filter:brightness:standard-deviation",text,
+      exception);
+    if (fabs(brightness_standard_deviation) >= MagickEpsilon)
       brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean*
         brightness_sum_x3/area+6.0*brightness_mean*brightness_mean*
         brightness_sum_x2/area-3.0*brightness_mean*brightness_mean*
@@ -200,23 +202,27 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
         brightness_standard_deviation*brightness_standard_deviation*
         brightness_standard_deviation)-3.0;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_kurtosis);
-    (void) SetImageProperty(image,"filter:brightness:kurtosis",text);
+    (void) SetImageProperty(image,"filter:brightness:kurtosis",text,
+      exception);
     if (brightness_standard_deviation != 0)
       brightness_skewness=(brightness_sum_x3/area-3.0*brightness_mean*
         brightness_sum_x2/area+2.0*brightness_mean*brightness_mean*
         brightness_mean)/(brightness_standard_deviation*
         brightness_standard_deviation*brightness_standard_deviation);
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_skewness);
-    (void) SetImageProperty(image,"filter:brightness:skewness",text);
+    (void) SetImageProperty(image,"filter:brightness:skewness",text,
+      exception);
     saturation_mean=saturation_sum_x/area;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_mean);
-    (void) SetImageProperty(image,"filter:saturation:mean",text);
+    (void) SetImageProperty(image,"filter:saturation:mean",text,
+      exception);
     saturation_standard_deviation=sqrt(saturation_sum_x2/area-(saturation_sum_x/
       area*saturation_sum_x/area));
     (void) FormatLocaleString(text,MaxTextExtent,"%g",
       saturation_standard_deviation);
-    (void) SetImageProperty(image,"filter:saturation:standard-deviation",text);
-    if (saturation_standard_deviation != 0)
+    (void) SetImageProperty(image,"filter:saturation:standard-deviation",text,
+      exception);
+    if (fabs(saturation_standard_deviation) >= MagickEpsilon)
       saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean*
         saturation_sum_x3/area+6.0*saturation_mean*saturation_mean*
         saturation_sum_x2/area-3.0*saturation_mean*saturation_mean*
@@ -224,14 +230,16 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
         saturation_standard_deviation*saturation_standard_deviation*
         saturation_standard_deviation)-3.0;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_kurtosis);
-    (void) SetImageProperty(image,"filter:saturation:kurtosis",text);
-    if (saturation_standard_deviation != 0)
+    (void) SetImageProperty(image,"filter:saturation:kurtosis",text,
+      exception);
+    if (fabs(saturation_standard_deviation) >= MagickEpsilon)
       saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean*
         saturation_sum_x2/area+2.0*saturation_mean*saturation_mean*
         saturation_mean)/(saturation_standard_deviation*
         saturation_standard_deviation*saturation_standard_deviation);
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_skewness);
-    (void) SetImageProperty(image,"filter:saturation:skewness",text);
+    (void) SetImageProperty(image,"filter:saturation:skewness",text,
+      exception);
   }
   return(MagickImageFilterSignature);
 }