是否有可用于MATLAB的imfilter的三维等价物?我希望将高斯滤波应用于3D直方图。我将自己实现它,通过创建一个(3D)高斯滤波器,然后遍历我的直方图中的每个元素,并总结相应的数据条目。MATLAB中的三维高斯滤波器
但是,如果已经存在某种东西或者更明智的方法,我不想自己以低速低效的方式实现它。
是否有可用于MATLAB的imfilter的三维等价物?我希望将高斯滤波应用于3D直方图。我将自己实现它,通过创建一个(3D)高斯滤波器,然后遍历我的直方图中的每个元素,并总结相应的数据条目。MATLAB中的三维高斯滤波器
但是,如果已经存在某种东西或者更明智的方法,我不想自己以低速低效的方式实现它。
imfilter已经可以做3D滤波,只要数据矩阵,你给过滤器它是3D。见the imfilter page。
这个任务可以使用新的(截至R2015a)imgaussfilt3
函数来处理。
的基本语法如下:
B = imgaussfilt3(A,sigma)
还有许多name-value pair arguments:
'FilterSize'
:高斯滤波器的大小,默认为大小2*ceil(2*sigma)+1
的立方体。'Padding'
:填充类型('replicate'
(默认)| 'circular'
| 'symmetric'
)。'FilterDomain'
:在域中执行卷积:'frequency'
或'spatial'
(默认自动)。
假设您的高斯滤波器是可分离的,那么您应该可以应用2D滤波器,然后应用1D滤波器? – 2011-06-13 13:10:41