使用内核的大小计算高斯滤波器的sigma

时间:2012-12-27 19:17:58

标签: opencv filtering gaussian

我在OpenCV documentation for cvSmooth上发现可以从内核大小计算sigma,如下所示: sigma = 0.3(n / 2 - 1)+ 0.8

我想知道这个等式的理论背景。

谢谢。

1 个答案:

答案 0 :(得分:5)

对sigma使用这样的值,在y=0x=n/2-1找到的内核中心和内核边缘的值之间的比率为:

g_edge / g_center = exp(-(x²+y²)/(2σ²))
                  = exp(-(n/2-1)²/(2*(0.3(n/2-1)+0.8)²))

n增加的此值的限制为:

exp(-1/(2*0.3²)) = 0.00386592

请注意,1/2560.00390625。图像通常以256值范围编码。 0.3的选择可确保内核考虑可能显着影响结果值的所有像素。

我担心我对0.8部分没有解释,但我想在n很小的时候确保合理的价值。