我目前有一个包含正值和负值的大型矩阵M (~100x100x50元素)。目前,如果我想平滑这个矩阵,我使用smooth3函数在整个3-D矩阵上应用高斯内核。
我想要实现的是在这个矩阵中实现可变水平的平滑-即。根据类似的3-D矩阵d中的值,矩阵M的不同部分被平滑到不同的sigma级别(具有从0到1的值)。如果d为0,则不会进行平滑;如果d为1,则会进行最大级别的平滑。
矩阵是3-D的事实是微不足道的。3维平滑很好,但不是必须的,而且我当前的代码(执行各种其他操作)无论如何都会分别处理M的50个切片。我很乐意将smooth3替换为具有高斯函数的M的卷积,并在每个切片上单独执行此卷积。我不明白的是如何改变这个高斯函数(基于d)在M中的位置,并输出相应的结果。
另一种方法可能是使用矩阵d作为非常平滑版本的矩阵Ms的掩码,并以某种方式操纵M和Ms以获得相同的结果,但是我不相信这会起作用,因为我想不出一个组合M和Md的函数,当0< M < Ms思考时,不给出每个d或1...any的伪像?
我使用的是2009b,并且只能访问信号处理工具箱。
发布于 2012-11-23 21:56:30
您应该看一看引导图像过滤器。它是双边滤波器在计算上的有效推广。
http://research.microsoft.com/en-us/um/people/jiansun/papers/guidedfilter_eccv10.pdf
它将允许您根据您的指导矩阵进行适当的平滑。
https://stackoverflow.com/questions/13530417
复制相似问题