matlab - 同一 Matlab 矩阵内的不同平滑级别

标签 matlab smoothing

我目前有一个包含正值和负值的大矩阵M(~100x100x50 元素)。目前,如果我想平滑该矩阵,我可以使用 smooth3 函数在整个 3-D 矩阵上应用高斯核。

我想要实现的是该矩阵内的可变平滑级别 - 即矩阵 M 的不同部分根据类似 3-D 中的值平滑到不同级别的 sigma矩阵,d(值范围从 0 到 1)。当 d 为 0 时,不会发生平滑;当 d 为 1 时,会发生最大程度的平滑。

矩阵是 3-D 的事实是微不足道的。 3 维平滑很好,但不是必需的,而且我当前的代码(执行各种其他操作)无论如何都会单独处理 M 的 50 个切片中的每一个。我很高兴将 smooth3 替换为带有高斯函数的 M 卷积,并分别对每个切片执行此卷积。我不知道的是如何改变这个高斯函数的西格玛水平(基于d)给定其在M中的位置并相应地输出结果。

另一种方法可能是使用矩阵 d 作为矩阵 Ms 的非常平滑版本的掩码,并以某种方式操纵 MMs 给出等效的结果,但是我不相信这会起作用,因为我想不出结合 MMd 的函数> 当 0 <d < 1 时,不会给出 MMs 中的每一个的伪影...有什么想法吗?

[我使用的是 2009b,并且只能访问信号处理工具箱。]

最佳答案

您应该看看引导图像过滤器。它是双边滤波器的计算高效的概括。

http://research.microsoft.com/en-us/um/people/jiansun/papers/guidedfilter_eccv10.pdf

它将允许您根据指导矩阵进行适当的平滑。

关于matlab - 同一 Matlab 矩阵内的不同平滑级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530417/

相关文章:

python - 严格高于原始曲线的平滑算法

matlab - 符号计算实现

arrays - 如何在 Matlab 中用另一个不同大小的数组的相应值替换表列的某些元素?

image - Matlab - 创建不同大小的子图的图形

java - 如何优化动画?

html - 如何在 HTML5 Canvas 中显示更平滑的渐变?

python - 在 matplotlib 中绘制彩色立方体

matlab - 大型稀疏数据集的主成分分析(PCA)

r - 如何使用 R 中的加权(调查)数据制作漂亮的无边界地理专题/热图,可能对点观测使用空间平滑

python - 如何让这个 matplotlib 情节不那么嘈杂?