From: cristy Date: Tue, 29 Apr 2014 22:45:46 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2382 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8fbcf1ad6a1d07a92ef39435f679143697be4eda;p=imagemagick --- diff --git a/MagickCore/feature.c b/MagickCore/feature.c index 183026842..481ff33c8 100644 --- a/MagickCore/feature.c +++ b/MagickCore/feature.c @@ -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)