“sigma”是否以“gaussian_filter”的像素为单位表示?

我正在查看scipy.ndimage.gaussian_filter,但sigma在这里看不到什么意思。是sigma= n手段n是像素数,因此n点的所有边上的像素数内的区域对平均贡献最大?


繁星点点滴滴
浏览 202回答 1
1回答

慕莱坞森

是的。从SciPy计算高斯核的复杂方法(没有双关语)中,这不是很明显,但是这是一个经验验证:我将高斯核与一个a具有单个项1的向量进行卷积,从而获得了卷积。然后以通常的方式计算方差,E[X**2] - E[X]**2其中X可以以像素(np.arange(len(a)))表示。from scipy.ndimage.filters import gaussian_filterimport numpy as npa = np.zeros((100,))x = np.arange(len(a))a[len(a)//2] = 1for 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)))输出:Given sigma 3, empiric value 2.999207360674749Given sigma 4, empiric value 3.9987184940057614Given sigma 5, empiric value 4.998211402871647Given sigma 6, empiric value 5.997694984501222Given sigma 7, empiric value 6.997173172490447Given sigma 8, empiric value 7.996647965992465Given sigma 9, empiric value 8.99612048649375
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python