【问题标题】:Blurring a 3D numpy array with periodic boundary conditions使用周期性边界条件模糊 3D numpy 数组
【发布时间】:2016-09-06 02:41:23
【问题描述】:

我有一个想要(高斯)模糊的 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]]] 形式的数组,即一个由as 的3 x 3 网格组成的数组。 然后我会模糊结果数组。由于我的矩阵相当大(200 x 200 x 200),我试图避免这样做。 (我可以考虑生成大数组的子数组,在中心处在a 周围留出足够的边距。但是,每次更改模糊半径时都需要确定该边距的大小。)

有没有简单有效的方法来做到这一点?

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2016-06-24
      • 2019-04-02
      • 2016-10-30
      • 2017-07-12
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多