3x3中值滤波怎么计算过程_MATLAB中的非线性空间滤波基础

2fbea433c8dc19f6d5232ea930f4725b.png

一,核心函数

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

函数colfilt的语法为:

g=colfilt(f, [m n], ‘sliding’,@ fun)

其中m和n表示滤波区域的维数,‘sliding’表明处理过程是m*n区域在输入图像f中逐像素地滑动,@ fun引用一个函数,我们将该函数任意表示为fun, 符号@是一个函数句柄,他是一直MATLAB数据类型,它包含引用函数用到的一些信息,这是一个非常有用的概念,我们将会在后面的学习中看到。

下面 举一个例子来看一下效果:

有这样的一副原图

cef08725a75134df69f2a5d23e386632.png

我们运行以下的程序:

I=imread('fxyx.jpg');   
J=rgb2gray(I);    
subplot(2,2,1);
imshow(J)
title('原图像灰度图');
F= uint8(colfilt(J,[5 5],'sliding',@mean));
subplot(2,2,2);
imshow(F)
title('滤波后图像');

3898deaa1aab5253d00add531fefd003.png

上面是处理前后的对比图像。

二,图像处理工具箱的标准空间滤波器

1.ordfilt函数

IPT中常用于生成非线性空间滤波的一个工具是函数ordfilt2,它可以生成统计排序( order-statistic )滤波器(也称为排序滤波器,rank filter )。它们都是非线性空间滤波器,其响应基于对图像邻域中所包含的像素进行排序,然后使用排序结果确定的值来替代邻域中的中心像素的值。本部分的重点在于由函数ordfilt2生成的非线性滤波器。

函数ordfilt2的语法为

g = ordfilt2(f, order, domain)

2.中值滤波器

数字图像处理中最著名的统计排序滤波器是中值滤波器,它对应的是第50个百分位。我们可以使用MATLAB函数ordfi lt2来创建一个中值滤波器:

g = ordfilt2(f,median(1 :m*n) , ones(m, n) )

其中median(1:m* n)简单地计算排序序列1, 2, . mn的中值。函数median的通用语法为

v=median (A, dim)

其中,v是向量,它的元素是A浩着维教dim的中值。例如,若dim-1,则v的每个元素就都是矩阵A中沿相应列的元素的中值。工具箱提供了一个二维中值滤波函数:

g=medfilt2 (f,[m n], padopt)

数组[m n]定义了一个大小为mxnf的邻域,中值就在该邻城上计算,面paopr指定了二个可能的边界填充选项之一:,zeros' (默认值);,symmettrie,此地f按照镜像反射方式对称地沿其边界扩展;,indexed',若f是double;类图像,则以1来填充图像,否则以0来填充图像。

该函数的默认形式为:

g=medfilt2 (f)

3.利用函数medfilt2进行中值滤波。

中值滤波是降低图像中椒盐噪声的一种有用工具。

如图是一块工业电路板在自动检测期间所拍摄的X射线图像f。

abd45c870de6c0da4019c5b639e74cf4.png
图一

下图是被椒盐噪声污染的同一幅图像,图像中黑点和白点出现的概率为0.2.这幅图像是利用函数imnoise生成的:

fn=imnoise(f,’salt & pepper’, 0.2);

ef5389fd5054cf66908fce27fc0cda3e.png
图二

图3是对该带噪图像进行中值滤波处理后的结果,使用语句:

gm=medfilt2(fn);

55a5ab9528839afd4c4ade138dbc0957.png
图三

考虑图2中的噪音水平,中值滤波采用默认设置很好地实现了降噪。但要注意围绕图像边界的黑色污点,这些黑色污点是由围绕图像的黑点引起的(回忆可知默认使用0来对边界进行填充)。使用‘symmetric’选项可降低这种效应:

gms=medfilt2(fn,’symmetric’);

4d7d6f5e0607243d417fa4c7087ba2e3.png
图四

上图结果与图2所示结果相近,但黑色边框效应已不再那么明显。

这部分的知识比较繁杂冗长,由于篇幅有限,我们今天讲的只是基础的部分,后面还会讲到的,这里只需要了解一下,知道这些函数的渊源就可以了。

想要进一步学习的小伙伴可以关注我们的公众号Asoul水云天课堂,也可以加qq群953314432进群学习哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值