]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Tue, 29 Apr 2014 22:45:46 +0000 (22:45 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Tue, 29 Apr 2014 22:45:46 +0000 (22:45 +0000)
MagickCore/feature.c

index 183026842ae9ce05bf957fd1602a892a98823ef9..481ff33c87ef5ed550569b30623d8d1b1aed6dcd 100644 (file)
@@ -237,6 +237,8 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
   const double sigma,const double lower_percent,const double upper_percent,
   ExceptionInfo *exception)
 {
+#define CannyEdgeImageTag  "CannyEdge/Image"
+
   CacheView
     *edge_view;
 
@@ -261,6 +263,9 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
   MagickBooleanType
     status;
 
+  MagickOffsetType
+    progress;
+
   MatrixInfo
     *canny_cache;
 
@@ -410,6 +415,7 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
     Non-maxima suppression, remove pixels that are not considered to be part
     of an edge.
   */
+  progress=0;
   (void) GetMatrixElement(canny_cache,0,0,&pixel);
   max=pixel.intensity;
   min=pixel.intensity;
@@ -542,6 +548,19 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
         status=TraceEdges(edge_image,edge_view,canny_cache,x,y,lower_threshold,
           exception);
     }
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp critical (MagickCore_CannyEdgeImage)
+#endif
+        proceed=SetImageProgress(image,CannyEdgeImageTag,progress++,
+          image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
   }
   edge_view=DestroyCacheView(edge_view);
   /*
@@ -1744,6 +1763,8 @@ static inline double MagickRound(double x)
 MagickExport Image *HoughLineImage(const Image *image,const size_t width,
   const size_t height,const size_t threshold,ExceptionInfo *exception)
 {
+#define HoughLineImageTag  "HoughLine/Image"
+
   CacheView
     *image_view;
 
@@ -1769,6 +1790,9 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
   MagickBooleanType
     status;
 
+  MagickOffsetType
+    progress;
+
   MatrixInfo
     *accumulator;
 
@@ -1809,6 +1833,7 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
     Populate the accumulator.
   */
   status=MagickTrue;
+  progress=0;
   center.x=(double) image->columns/2.0;
   center.y=(double) image->rows/2.0;
   image_view=AcquireVirtualCacheView(image,exception);
@@ -1852,6 +1877,19 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
         }
       p+=GetPixelChannels(image);
     }
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp critical (MagickCore_CannyEdgeImage)
+#endif
+        proceed=SetImageProgress(image,CannyEdgeImageTag,progress++,
+          image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
   }
   image_view=DestroyCacheView(image_view);
   if (status == MagickFalse)