2016-05-10 46 views
1

我有一个我想(高斯)模糊的3D矩阵。这我可以用scipy.ndimage.filters.gaussian_filter()。我的问题是,我该怎么做才能让边缘上的像素模糊,以便遵守周期性边界条件?使用周期性边界条件模糊3D numpy阵列

我的意思是,当考虑到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网格a s组成的数组。 我会模糊结果数组。由于我的矩阵相当大(200×200×200),我试图避免这样做。 (我可以考虑一个由此产生的大阵列的子阵列,其中我在中心留下了大约a的余量,但是,每次改变模糊半径时都需要确定边距的大小)。简单而有效的方法来做到这一点?

回答

3

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

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

当然,用您的实际参数代替西格马。