使用周期性边界条件模糊3D numpy数组

时间:2016-05-10 22:36:16

标签: python numpy scipy

我有一个我想要(高斯)模糊的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左边的足够边距。但是,每次我改变模糊半径时都需要确定边距的大小。)

有一种简单有效的方法吗?

1 个答案:

答案 0 :(得分:3)

将mode关键字参数设置为'wrap'将强制执行周期性边界条件。代码看起来如下所示。

result = gaussian_filter(a, sigma = 1., mode='wrap')

当然,用您的实际参数替换sigma。