非线性空间滤波colfilt

工具箱提供了两个函数来执行常见的非线性滤波:nlfilter和colfilt。前者直接执行二维操作,而colfilt按列的形式组织数据。尽管colfilt需要占用更多的内存,但执行起来要比nlfilter快得多。在大多数图像处理应用中,速度是最重要的因素,因此在实现非线性空间滤波时,更多的采用colfilt而不是nolfilt。

给定一幅大小为M*N的输入图像f,邻域大小为m*n,函数colfilt生成一个最大尺寸为mn*MN的矩阵,成为A(A总有mn行,但列数可变,具体取决于输入尺寸)。

    函数colfilt的语法为

                                 g = colfilt(f, [m,n], 'sliding', fun)

    其中,m和n表示滤波区域的维数,‘sliding’,表明处理过程是m*n区域在输入图像f中逐像素滑动,fun是一个函数句柄。

    基于A的组织方式,函数必须分别对A的每一列进行操作,并返回一个行向量v,v的第k个元素即是对A中的第k列进行fun操作后的结果。因为A中最多有MN列,所以A的最大维数为1*MN。

 

在使用colfilt时,滤波前必须显式地填充图像。为此,使用二维函数padarray,其语法为

                                    fp = padarray(f, [r c], method, direction)

    其中f为输入图像,fp为填充后的图像,[r c]表示填充的行数和列数,method和direction为图像尺寸扩展方法和填充方向。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值