我有一个我想要(高斯)模糊的3D矩阵。我可以使用scipy.ndimage.filters.gaussian_filter()
。我的问题是,我能做些什么才能使边缘上的像素模糊,以便遵循周期性边界条件?
我的意思是,当考虑a[0,:,:]
处的元素时,分配给该元素的平均值也应受a[-1,:,:]
中元素的影响。
我想过多次连接相同的数组a
,这样我就有了一个[[[a,a,a],[a,a,a],[a,a,a]],[[a,a,a],[a,a,a],[a,a,a]],[[a,a,a],[a,a,a],[a,a,a]]]
形式的数组,即一个由3 {3}网格组成的数组{{1} }秒。
然后我会模糊生成的数组。由于我的矩阵相当大(200乘200乘200),我试图避免这样做。 (我可以考虑生成的大数组的子阵列,我在中心留下a
左边的足够边距。但是,每次我改变模糊半径时都需要确定边距的大小。)
有一种简单有效的方法吗?
答案 0 :(得分:3)
将mode关键字参数设置为'wrap'将强制执行周期性边界条件。代码看起来如下所示。
result = gaussian_filter(a, sigma = 1., mode='wrap')
当然,用您的实际参数替换sigma。