mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-25 16:20:33 +03:00
move ImagingGaussianBlur to BoxBlur.c
This commit is contained in:
parent
274f0a14ba
commit
4323683a63
|
@ -285,3 +285,22 @@ ImagingBoxBlur(Imaging imOut, Imaging imIn, float radius, int n)
|
||||||
|
|
||||||
return imOut;
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -19,24 +19,6 @@ static inline UINT8 clip(double in)
|
||||||
return (UINT8) (in + 0.5);
|
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
|
Imaging
|
||||||
ImagingUnsharpMask(Imaging imOut, Imaging imIn, float radius, int percent,
|
ImagingUnsharpMask(Imaging imOut, Imaging imIn, float radius, int percent,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user