From 983aa7cfdd9f51bc2309c5b1cbe50c6c3ac23993 Mon Sep 17 00:00:00 2001 From: cristy Date: Sun, 27 Apr 2014 23:00:49 +0000 Subject: [PATCH] --- MagickCore/feature.c | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/MagickCore/feature.c b/MagickCore/feature.c index eec801124..8d67d9425 100644 --- a/MagickCore/feature.c +++ b/MagickCore/feature.c @@ -2140,27 +2140,30 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width, for (u=(-((ssize_t) width/2)); u < (((ssize_t) width/2)); u++) { - PixelInfo - pixel; - - status=GetOneCacheViewVirtualPixelInfo(pixel_view,(ssize_t) - (mean_location.x+u),(ssize_t) (mean_location.y+v),&pixel, - exception); - distance=(mean_pixel.red-previous_pixel.red)* - (mean_pixel.red-previous_pixel.red)+ - (mean_pixel.green-previous_pixel.green)* - (mean_pixel.green-previous_pixel.green)+ - (mean_pixel.blue-previous_pixel.blue)* - (mean_pixel.blue-previous_pixel.blue); - if (distance <= (color_distance*color_distance)) + if ((v*v+u*u) <= ((width/2)*(height/2))) { - sum_location.x+=mean_location.x+u; - sum_location.y+=mean_location.y+v; - sum_pixel.red+=pixel.red; - sum_pixel.green+=pixel.green; - sum_pixel.blue+=pixel.blue; - sum_pixel.alpha+=pixel.alpha; - count++; + PixelInfo + pixel; + + status=GetOneCacheViewVirtualPixelInfo(pixel_view,(ssize_t) + (mean_location.x+u),(ssize_t) (mean_location.y+v),&pixel, + exception); + distance=(mean_pixel.red-previous_pixel.red)* + (mean_pixel.red-previous_pixel.red)+ + (mean_pixel.green-previous_pixel.green)* + (mean_pixel.green-previous_pixel.green)+ + (mean_pixel.blue-previous_pixel.blue)* + (mean_pixel.blue-previous_pixel.blue); + if (distance <= (color_distance*color_distance)) + { + sum_location.x+=mean_location.x+u; + sum_location.y+=mean_location.y+v; + sum_pixel.red+=pixel.red; + sum_pixel.green+=pixel.green; + sum_pixel.blue+=pixel.blue; + sum_pixel.alpha+=pixel.alpha; + count++; + } } } } -- 2.40.0