当我在Inkscape中模糊对象时,假设为10%,它会得到一个带有feGaussionBlur的过滤器,其stdDeviation为10%* size / 2。 然而,过滤器的大小为124%(实际上它很大,Inkscape不会增加一点只是为了安全方面)。
这个号码来自哪里?我的猜测是 1 , null, 1
3 , null, 2
3 , 4 , null
null, 2 , null
,但是这个2.4来自哪里?
答案 0 :(得分:2)
此滤镜基元在输入图像上执行高斯模糊。
高斯模糊核是归一化卷积的近似值:
G(x,y)= H(x)I(y)
哪里
H(x)= exp(-x2 /(2s2))/ sqrt(2 * pi s2)
和
I(y)= exp(-y2 /(2t2))/ sqrt(2 pi * t2)
与'是x方向的标准偏差,' t'是'stdDeviation'指定的y方向的标准偏差。
'stdDeviation'的值可以是一个或两个数字。如果提供两个数字,则第一个数字表示沿当前坐标系的x轴的标准偏差值,第二个数字表示Y中的标准偏差。如果提供一个数字,则该值用于X和收率
即使只为“stdDeviation”提供了一个值,也可以将其实现为可分离的卷积。
对于较大的值' (s> = 2.0),可以使用近似:三个连续的盒子模糊构建一个分段的二次卷积核,它将高斯核逼近到大约3%。
让d = floor(s * 3 * sqrt(2 * pi)/ 4 + 0.5)
...如果d为奇数,则使用三个大小为' d'的盒子模糊,以输出像素为中心。 ...如果d是偶数,那么两个大小的盒子模糊' d' (第一个以输出像素和左边的像素边界为中心,第二个以输出像素和右边的像素边界为中心)和一个大小的盒子模糊' d + 1'以输出像素为中心。
Note: the approximation formula also applies correspondingly to 't'.*