这是ndimage.gaussian_filter的预期结果吗?

时间:2016-11-16 14:50:02

标签: python scipy gaussian derivative boundary

我正在尝试使用gaussian_filter中的scipy.ndimage来计算离散导数,因此输出会出现一些带边界条件的奇怪行为。代码如下:

from scipy import ndimage
import numpy as np
import matplotlib.pyplot as plt

y = np.linspace(0.2*np.pi,0.7*np.pi,100)
U = np.sin(y)


sg = 1
Uy  = ndimage.gaussian_filter1d(U, sigma=sg,order=1,mode='constant',cval=0)
Uy2  = ndimage.gaussian_filter1d(U, sigma=sg,order=1,mode='nearest')
Uy3  = ndimage.gaussian_filter1d(U, sigma=sg,order=1,mode='reflect')
Uy4  = ndimage.gaussian_filter1d(U, sigma=sg,order=1,mode='mirror')
Uy5  = ndimage.gaussian_filter1d(U, sigma=sg,order=1,mode='wrap')


fig,(a1,a2) = plt.subplots(1,2)
a1.plot(U , y,label='data')
a2.plot(Uy, y,label='constant')
a2.plot(Uy2,y,label='nearest')
a2.plot(Uy3,y,label='reflect')
a2.plot(Uy4,y,label='mirror')
a2.plot(Uy5,y,label='wrap')
a1.legend(loc='best')
a2.legend(loc='best')

enter image description here

发生什么事了?常量模式应该导致boudary?这是预期的结果吗?

0 个答案:

没有答案