2

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

我想要实现的是该矩阵内的可变平滑级别 - 即。根据类似的 3-D 矩阵中的值(值范围从 0 到 1),矩阵的不同部分M被平滑到不同级别的 sigma 。d其中d0 表示不进行平滑处理,其中d1 表示出现最大级别的平滑处理。

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

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

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

4

1 回答 1

2

你应该看看引导图像过滤器。它是双边滤波器的计算有效的推广。

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

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

于 2012-11-23T13:56:30.037 回答