【发布时间】:2018-01-19 18:46:58
【问题描述】:
我想在 MATLAB 中对 3D 数据矩阵执行非对称高斯滤波。使用 imgaussfilt3,我可以做到对称(在所有三个维度上都一样模糊)。但是,我只能给 sigma 一个值,因此过滤在所有维度上都是相同的。
在另一个线程中,我发现可以使用 fspecial 函数分离过滤并水平和垂直应用它(在这种情况下它只是 2D)。可悲的是,我无法使其工作(与在一个小示例矩阵中使用 imgaussfilt 时相比,我不断得到不同的结果),并且 fspecial 的文档说不再推荐使用高斯模式,而是使用 imgaussfilt 。
举个例子:
matrix = rand(30,30,30);
sigma = 2;
matrix_symblur = imgaussfilt3(matrix,sigma);
我现在想改变三个维度的 sigma 分别为 1、2 和 3 的方式,以便三个维度的模糊效果不同。
我正在使用 MATLAB R2017a。有人可以帮忙吗?
【问题讨论】:
-
听起来你需要定义自己的过滤内核,然后使用更通用的函数,如
imfilter。祝你好运!