From 4c8a3ecf917f56f107f2a7477fb60139d2861f3d Mon Sep 17 00:00:00 2001 From: cristy Date: Tue, 29 Apr 2014 19:42:35 +0000 Subject: [PATCH] --- MagickCore/feature.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/MagickCore/feature.c b/MagickCore/feature.c index 8e663e952..183026842 100644 --- a/MagickCore/feature.c +++ b/MagickCore/feature.c @@ -2035,6 +2035,7 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width, const size_t height,const double color_distance,ExceptionInfo *exception) { #define MaxMeanShiftIterations 100 +#define MeanShiftImageTag "MeanShift/Image" CacheView *image_view, @@ -2047,6 +2048,9 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width, MagickBooleanType status; + MagickOffsetType + progress; + ssize_t y; @@ -2065,11 +2069,12 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width, return((Image *) NULL); } status=MagickTrue; + progress=0; image_view=AcquireVirtualCacheView(image,exception); pixel_view=AcquireVirtualCacheView(image,exception); mean_view=AcquireAuthenticCacheView(mean_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static,4) shared(status) \ + #pragma omp parallel for schedule(static,4) shared(status,progress) \ magick_threads(mean_image,mean_image,mean_image->rows,1) #endif for (y=0; y < (ssize_t) mean_image->rows; y++) @@ -2192,6 +2197,19 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width, } if (SyncCacheViewAuthenticPixels(mean_view,exception) == MagickFalse) status=MagickFalse; + if (image->progress_monitor != (MagickProgressMonitor) NULL) + { + MagickBooleanType + proceed; + +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp critical (MagickCore_MeanShiftImage) +#endif + proceed=SetImageProgress(image,MeanShiftImageTag,progress++, + image->rows); + if (proceed == MagickFalse) + status=MagickFalse; + } } mean_view=DestroyCacheView(mean_view); pixel_view=DestroyCacheView(pixel_view); -- 2.40.0