diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 574982e..a24ed40 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -1439,9 +1439,6 @@
     *image_view[4],
     *kuwahara_view;
 
-  double
-    radius;
-
   Image
     *gaussian_image,
     *kuwahara_image;
@@ -1455,6 +1452,9 @@
   register ssize_t
     i;
 
+  size_t
+    radius;
+
   ssize_t
     y;
 
@@ -1467,8 +1467,8 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
-  radius=(double) (width-1.0)/2.0;
-  gaussian_image=BlurImage(image,radius,sigma,exception);
+  radius=(size_t) width/2;
+  gaussian_image=BlurImage(image,(double) radius,sigma,exception);
   if (gaussian_image == (Image *) NULL)
     return((Image *) NULL);
   kuwahara_image=CloneImage(image,image->columns,image->rows,MagickTrue,
@@ -1530,26 +1530,26 @@
 
       for (i=0; i < 4; i++)
       {
-        quadrant[i].width=(size_t) radius;
-        quadrant[i].height=(size_t) radius;
+        quadrant[i].width=radius;
+        quadrant[i].height=radius;
         quadrant[i].x=x;
         quadrant[i].y=y;
         switch (i)
         {
           case 0:
           {
-            quadrant[i].x=x-(ssize_t) (radius-1.0);
-            quadrant[i].y=y-(ssize_t) (radius-1.0);
+            quadrant[i].x=x-(ssize_t) (radius-1);
+            quadrant[i].y=y-(ssize_t) (radius-1);
             break;
           }
           case 1:
           {
-            quadrant[i].y=y-(ssize_t) (radius-1.0);
+            quadrant[i].y=y-(ssize_t) (radius-1);
             break;
           }
           case 2:
           {
-            quadrant[i].x=x-(ssize_t) (radius-1.0);
+            quadrant[i].x=x-(ssize_t) (radius-1);
             break;
           }
           case 3: