2016-05-10 79 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') 

當然,用您的實際參數代替西格馬。