簡體   English   中英

python中matlab的smooth3函數的等效功能是什么?

[英]What is the equivalent of matlab's smooth3 function in python?

我在python中找不到等效的matlab的smooth3。 如何在python中執行3d平滑?

最好為此使用scipy.ndimage 它具有大量功能,並且使您可以很好地控制內存使用情況(例如,您可以就地執行所有這些操作,而無需進行復制)。

等效於smooth3d的默認過濾器為smooth3d scipy.ndimage.uniform_filter(data, 3) (“ 3”是過濾器的大小。3是matlab的默認值)。

smooth3(data, 'gaussian')等效的是scipy.ndimage.gaussian_filter(data, 3)

請注意, scipy.ndimage的函數適用於任何尺寸數據。 我將在下面顯示一個2D示例以簡化可視化,但是對於1D,3D,4D,10D等,該函數調用是相同的。

import numpy as np
import scipy.ndimage as ndimage
import matplotlib.pyplot as plt

raw_data = np.random.random((30,30))

fig, axes = plt.subplots(ncols=3)

axes[0].imshow(raw_data, interpolation='nearest')
axes[0].set(title='Raw Data', xticks=[], yticks=[])

axes[1].imshow(ndimage.uniform_filter(raw_data, 3), interpolation='nearest')
axes[1].set(title='Uniform Filter', xticks=[], yticks=[])

axes[2].imshow(ndimage.gaussian_filter(raw_data, 3), interpolation='nearest')
axes[2].set(title='Gaussian Filter', xticks=[], yticks=[])

fig.tight_layout()
plt.show()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM