kon*_*ant 2 python filtering scipy gaussianblur
我正在查看scipy.ndimage.gaussian_filter,但无法理解sigma这里的含义。sigma= n平均值是n像素数,因此n点所有边上像素数内的区域对平均贡献最大?
小智 6
是的。从 SciPy计算高斯核的复杂(无双关语)方式来看,这一点并不明显,但这里有一个经验验证:我将高斯与a具有单个条目 1 的向量进行卷积,获得了卷积。然后以通常的方式计算方差E[X**2] - E[X]**2,其中 X 明显以像素为单位 ( np.arange(len(a)))。
from scipy.ndimage.filters import gaussian_filter
import numpy as np
a = np.zeros((100,))
x = np.arange(len(a))
a[len(a)//2] = 1
for sigma in range(3, 10):
kernel = gaussian_filter(a, sigma)
var = np.sum(x**2*kernel) - np.sum(x*kernel)**2
print("Given sigma {}, empiric value {}".format(sigma, np.sqrt(var)))
Run Code Online (Sandbox Code Playgroud)
输出:
Given sigma 3, empiric value 2.999207360674749
Given sigma 4, empiric value 3.9987184940057614
Given sigma 5, empiric value 4.998211402871647
Given sigma 6, empiric value 5.997694984501222
Given sigma 7, empiric value 6.997173172490447
Given sigma 8, empiric value 7.996647965992465
Given sigma 9, empiric value 8.99612048649375
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |