注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

苍茫大地的博客

 
 
 

日志

 
 
关于我

盒子里的梦想

文章分类
网易考拉推荐
GACHA精选

非线性空间滤波(转自他人日志)  

2012-05-04 19:31:53|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

掩膜的概念在非线性操作中并不流行,滤波的概念仍然存在。非线性空间滤波基于非线性操作,这种操作包含了一个领域的像素。而线性空间滤波基于计算乘积之和(这是一种线性操作)

MATLAB IPT中提供了两个执行常规非线性滤波的函数:nlfilter和colfilt(Columnwise neighborhood operations,列向领域操作)。nlfilter直接执行二维操作,而colfilt则以列的形式组织数据。虽然colfilt需要占用更多的内存,但执行起来比nlfilter快得多。在大多数图像处理中,速度是个很重要的概念。内存已不是主要因素。

在执行常规的非线性空间滤波时,更多采用的是colfilt而非nlfilter

调用语法:G = colfilt(A,[m n],block_type,fun)

执行过程:

(1)先是根据block_type将A(比如图像数据f(x,y))转换成待处理的矩阵B,方法为:

B = im2col(A,[m n],block_type)

当block_type为'distinct'时,转换过程如下图所示:


当block_type为'sliding'(默认参数)时,转换过程如下图:


(注:①A是5阶魔方矩阵,仅作示意②使用了2x3的block③此转换过程是colfilt函数内部进行的)

(2)得到矩阵B,然后调用函数fun对B进行运算(fun为函数名柄),如:

G=colfilt(A,[5 5],'sliding',@mean)  %使用mean函数(求均值)

(3)colfilt函数的最后一步是将fun函数执行的结果,再调用col2im转换为和原始矩阵A同尺寸的矩阵,作为输出结果。

col2im调用语法为:G = col2im(B’,[m n],[mm nn],'distinct') %B'是fun函数运算后的结果。

 

由上可知,colfilt处理的关键在于fun函数的选取。

============

示例:

I = imread('tire.tif');
imshow(I)


I2 = uint8(colfilt(I,[5 5],'sliding',@mean));
figure, imshow(I2)

 

  评论这张
 
阅读(411)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017