如何在python中获得一个高斯滤波器
如何在python中获得一个高斯滤波器
我正在使用Python创建一个尺寸为5x5的高斯滤波器。
我在这篇文章here中看到了一个类似的帖子,但我没有找到与Matlab函数fspecial('gaussian', f_wid, sigma)
等效的Python代码的确切方法。
是否有其他方法可以实现呢?
我尝试使用以下代码:
size = 2 sizey = None size = int(size) if not sizey: sizey = size else: sizey = int(sizey) x, y = scipy.mgrid[-size: size + 1, -sizey: sizey + 1] g = scipy.exp(- (x ** 2/float(size) + y ** 2 / float(sizey))) print g / np.sqrt(2 * np.pi)
得到的输出是:
[[ 0.00730688 0.03274718 0.05399097 0.03274718 0.00730688] [ 0.03274718 0.14676266 0.24197072 0.14676266 0.03274718] [ 0.05399097 0.24197072 0.39894228 0.24197072 0.05399097] [ 0.03274718 0.14676266 0.24197072 0.14676266 0.03274718] [ 0.00730688 0.03274718 0.05399097 0.03274718 0.00730688]]
我想要的是这样的输出:
0.0029690 0.0133062 0.0219382 0.0133062 0.0029690 0.0133062 0.0596343 0.0983203 0.0596343 0.0133062 0.0219382 0.0983203 0.1621028 0.0983203 0.0219382 0.0133062 0.0596343 0.0983203 0.0596343 0.0133062 0.0029690 0.0133062 0.0219382 0.0133062 0.0029690