From 4323683a637bf087e74cd2e3fb759b21184eae1c Mon Sep 17 00:00:00 2001 From: homm Date: Sat, 25 Oct 2014 17:17:53 +0400 Subject: [PATCH] move ImagingGaussianBlur to BoxBlur.c --- libImaging/BoxBlur.c | 19 +++++++++++++++++++ libImaging/UnsharpMask.c | 18 ------------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/libImaging/BoxBlur.c b/libImaging/BoxBlur.c index a0e23c4cd..64d4fd430 100644 --- a/libImaging/BoxBlur.c +++ b/libImaging/BoxBlur.c @@ -285,3 +285,22 @@ ImagingBoxBlur(Imaging imOut, Imaging imIn, float radius, int n) return imOut; } + + +Imaging ImagingGaussianBlur(Imaging imOut, Imaging imIn, float radius, + int passes) +{ + float sigma2, L, l, a; + + sigma2 = radius * radius / passes; + // from http://www.mia.uni-saarland.de/Publications/gwosdek-ssvm11.pdf + // [7] Box length. + L = sqrt(12.0 * sigma2 + 1.0); + // [11] Integer part of box radius. + l = floor((L - 1.0) / 2.0); + // [14], [Fig. 2] Fractional part of box radius. + a = (2 * l + 1) * (l * (l + 1) - 3 * sigma2); + a /= 6 * (sigma2 - (l + 1) * (l + 1)); + + return ImagingBoxBlur(imOut, imIn, l + a, passes); +} diff --git a/libImaging/UnsharpMask.c b/libImaging/UnsharpMask.c index 019678385..61526cca7 100644 --- a/libImaging/UnsharpMask.c +++ b/libImaging/UnsharpMask.c @@ -19,24 +19,6 @@ static inline UINT8 clip(double in) return (UINT8) (in + 0.5); } -Imaging ImagingGaussianBlur(Imaging imOut, Imaging imIn, float radius, - int passes) -{ - float sigma2, L, l, a; - - sigma2 = radius * radius / passes; - // from http://www.mia.uni-saarland.de/Publications/gwosdek-ssvm11.pdf - // [7] Box length. - L = sqrt(12.0 * sigma2 + 1.0); - // [11] Integer part of box radius. - l = floor((L - 1.0) / 2.0); - // [14], [Fig. 2] Fractional part of box radius. - a = (2 * l + 1) * (l * (l + 1) - 3 * sigma2); - a /= 6 * (sigma2 - (l + 1) * (l + 1)); - - return ImagingBoxBlur(imOut, imIn, l + a, passes); -} - Imaging ImagingUnsharpMask(Imaging imOut, Imaging imIn, float radius, int percent,