【问题标题】:3D Gaussian Filter in MATLABMATLAB 中的 3D 高斯滤波器
【发布时间】:2023-04-09 21:04:01
【问题描述】:

是否有可用于 MATLAB 的 imfilter 的 3D 等效项?我希望将高斯滤波应用于 3D 直方图。我打算自己实现它,方法是创建一个 (3D) 高斯滤波器,然后遍历我的直方图中的每个元素,并总结相应的数据条目。

但是,如果已经有一些东西,或者更聪明的方法,我不想自己以一种缓慢而低效的方式实现它。

【问题讨论】:

  • 假设您的高斯过滤器是可分离的,那么您应该能够应用 2D 过滤器和 1D 过滤器?

标签: matlab image-processing filter gaussian


【解决方案1】:

有两种方法可以解决这个问题,以便以有效的方式进行过滤:

(1) 使用CONVN 三次过滤数据,其中包含三个一维高斯、一个 x×1×1、一个 1×y×1 和一个 1×1 -by-z。

(2) 如果您有信号处理工具箱,请使用FFTFILT 在逆空间中执行过滤(或在文件交换中使用任何一种 fft-convolution 算法)。

[(3) 给我发一封电子邮件,我会发给你我的fftFilterImage,它会进行 3D 高斯滤波。]

【讨论】:

    【解决方案2】:

    imfilter 已经可以做 3D 过滤了,只要数据矩阵和你给它的过滤器是 3D 的。见the imfilter page

    【讨论】:

      【解决方案3】:

      可以使用新的(自 R2015a 起)imgaussfilt3 函数来处理此任务。

      基本语法如下:

      B = imgaussfilt3(A,sigma)
      

      还有一些name-value pair arguments

      • 'FilterSize':高斯滤波器的大小,默认为大小为2*ceil(2*sigma)+1的立方体。
      • 'Padding':填充类型('replicate'(默认)|'circular'|'symmetric')。
      • 'FilterDomain':在域中执行卷积:'frequency''spatial'(默认自动)。

      【讨论】:

        猜你喜欢
        • 2017-04-20
        • 2011-02-15
        • 1970-01-01
        • 2014-07-21
        • 2013-03-29
        • 2012-10-22
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        相关资源
        最近更新 更多