APP下载

基于MATLAB的图像处理空间域滤波研究

2017-09-09苏婕于莲芝

软件导刊 2017年8期

苏婕+于莲芝

摘 要:为改善原始图像清晰度差、提高图像视觉效果,采用空间域图像滤波方法。该方法相比時域滤波方法,虽然算法复杂,但可使图像获得更好的视觉效果。运用MATLAB软件对原始图像进行平均平滑、高斯平滑、中值滤波及基于一阶和二阶微分的锐化算子进行一系列处理,分析了每种处理方法的优缺点。实验结果显示:采用空间域的图像滤波方法不仅具有良好的去噪效果,而且可以极大改善原始图像质量。

关键词:空间域;平均平滑;高斯平滑;中值滤波;图像滤波

DOIDOI:10.11907/rjdk.171326

中图分类号:TP319

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0132-03

0 引言

图像增强研究与应用始于20世纪60年代,一些研究者对来自太空飞船实时发回的图像信息进行一系列图像增强处理,以便获取较好的图像质量。图像增强技术被广泛应用于信息学、天文学、工农业、国防、艺术等领域[1]。

数字图像处理是指使用计算机对量化的数字型图像进行处理,具体来说就是对图像进行加工来改善图像质量。数字图像处理分为3块:图像预处理、图像特征提取、图像的识别和分析。

图像预处理一般包括图像的几何运算、灰度变换以及滤波变换等,主要目的是尽可能消除图像识别干扰,利于图像特征提取以及识别分析。如果预处理出现较大偏差,则后期处理工作很难开展,所以对原图的预处理要尽可能选择最优处理方法,达到最好效果;图像特征提取指使用计算机来提取图像中包含的信息,从而判断图像上的每一个点是否为某一个具体图像特征;图像识别与分析指对图像内容进行分析和识别。

1 空间域图像增强基本理论

空间域图像增强与频率域图像增强是在不同领域对图像进行滤波处理,只不过有些滤波更加适合在空间域完成,有些则更适合在频域中完成。本文研究的空间域图像增强技术主要包含直方图均衡化、图像平滑以及图像锐化等操作[2]。

直方图均衡化:通过某种方式把图像转化为在一定范围内的每一个灰度级上都有数量相仿的像素点数(即输出的直方图是均匀的),这样的图像有相对高的对比度。

图像平滑及图像锐化:图像平滑是减少噪声的数字图像处理技术,常采用领域平均以达到平滑,而图像锐化是把模糊度较低的图像变得更加清晰。

2 MATLAB软件开发环境

MATLAB是由Mathworks 公司开发的一款工程数学计算软件,是高性能数值计算和可视化软件,全称是Matrix laboratory。C++、Java、C#、Fortran等高级编程语言用于对机器行为进行描述,MATLAB用于对数学操作进行直接描述。

MATLAB图像处理工具箱(Image Processing Toolbox ,IPT)封装一系列图像处理算法,通过直接或间接调用MATLAB中的矩阵运算和数值运算函数完成图像处理任务。利用MATLAB的图像处理工具箱可以不用太在意图像格式、显示以及内容等细节,专心致力于图像处理算法研究,极大提高了工作效率,灵活可行 [3]。

3 空间域图像增强在MATLAB上的实现

3.1 滤波操作的MATLAB实现

MATLAB中与滤波相关的函数有imfilter和fspecial,imfilter完成滤波操作,而fspecial可以创建一些预定义的二维滤波器,直接提供给imfilter使用。滤波函数imfilter原型如下:

g=imfilter(f,w,option1,option2,...)(1)

式(1)中f是进行滤波操作的图像,w是滤波操作使用的模板,为一个二维数组。option1,option2,...是可选项。

fspecial创建预定义的二维滤波器,其调用格式如下:

h=fspecial(type,parameters)(2)

式(2)中type用于指定滤波器类型,Parameter为可选项,是和所选的滤波器类型type相关的配置参数。

3.2 平滑空间滤波器

3.2.1 平均模板及其实现

模板中所有系数都相等,表示它们对某一像素值的贡献大小一样。模板元素之和为1,这样就能让新图像和原始图像一样保持在一个灰度范围之内,这样的模板叫平均模板。

主要的MATLAB程序如下:

A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic\萌图.jpg');

h=fspecial('average',5);

C=imfilter(B,h)

其在MATLAB上的处理结果如图1所示。

从图1可以看出,平均模板虽然在滤波过程中平滑处理了更多噪声,但同时也使图像不清晰,这是由平均模板的工作机理决定的。

3.2.2 高斯平滑及其实现

为了减少平均平滑处理中的模糊问题,采取加大模板中心点权重方法,即离中心点远的点权重减小,这种模板称为高斯模板。

MATLAB程序如下:

A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic.jpg');

h3_5=fspecial('gaussian',3,0.5);

I3_5=imfilter(B,h3_5);

h3_6=fspecial('gaussian',3,0.8);

I3_6=imfilter(B,h3_6);

h3_7=fspecial('gaussian',3,1.8);endprint

I3_7=imfilter(B,h3_7)

分别对标准差Sigma取不同值,高斯平滑在MATLAB软件上实现的效果分别为如图2(a)、(b)、(c)、(d)所示。

由图2可见,当标准差sigma取不同值时,会出现不同效果。Sigma过小,无法起到平滑噪声作用;sigma过大则退化为平均模板。一般在3×3模板中,取0.8较为合适。

3.3 统计排序滤波器

统计滤波器是一种非线性滤波器,其中中值滤波器使用最普遍。这种滤波器先将模板中包围图像区域像素大小进行排序,然后用排序结果决定的值替代模板中心像素的值。中值滤波是消除椒盐噪声的典型应用 [4-6]。MATLAB提供了medfilt2函数实现中值滤波,原型为:I2=medfilt2(I1,[m,n]) (3)

式(3)中I1是原图矩阵,m和n是中值滤波处理的模板大小。

统计滤波器在MATLAB实现程序如下:

A=imread('D:\\Program Files\\MATLAB\\R2012b\\pic.jpg');

C=medfilt2(A,[3,3],'symmetric')

中值滤波在MATLAB的实现效果如图3所示。

对比图3的(a)、(b),可见中值滤波不仅可以抑制椒盐噪声,还使模糊效应明显降低,使图像清晰度更高,效果更优。

3.4 图像锐化处理

锐化处理主要目的是突出灰度过渡部分。

3.4.1 基于一阶导数的图像增强

分别采用w1算子和w2算子对一阶导数的图像增强进行图像锐化处理,其在MATLAB中的实现效果如图4所示。

由w1和w2算子分别进行锐化的结果都可能存在负值,所以采取取绝对值后的图像。图4(b)中接近正45°边缘较明显,而图4(c)显示出近负45°方向的边缘。两者相结合就是图4(a)中显示的Robert交叉梯度图像。

3.4.2 基于二阶微分的图像增强

拉普拉斯模板结构不同于一阶梯度算子模板,它对于90°的旋转是各向同性的,这表明拉普拉斯算子在近水平和接近竖直方向的边缘都有很好的增强效果,避免了用梯度算子时需要进行两次滤波的繁琐。基于二阶微分的图像增强实现效果如图5所示。

3.4.3 基于一阶和二阶导数的锐化算子比较

一阶导数往往会产生比二阶导数算子宽的图像边缘,而二阶导数对细节有较强的响应,比如细线和孤立噪声点。对于图像增强来说,基于二阶导数的算子应用会更加广泛,对于细节的处理更优,一阶算子和二阶算子结合使用能达到更好的锐化增强效果。

4 结语

本文基于MATLAB软件环境,对空间域图像增强进行了研究。在该研究中,对于线性和非线性滤波以及图像锐化处理,应用了软件的算术运算和矩阵运算功能,并对图像增强中的平均模板、高斯平滑、中值滤波以及图像锐化进行了MATLAB实现,在数字图像处理研究中能得心应手,极大提高了工作效率。结果表明,空间域的图像增强技术不仅具有良好的去躁效果,而且可以提高图像清晰度。后续将研究时域图像处理技术,将两者优势结合起来,使图像处理效果更好。

参考文献:

[1] 冈萨雷斯.数字图像处理[M].MATLAB版.北京:电子工业出版社,2007.

[2] 張铮,王艳平,薛桂香.数字图像处理与机器视觉——VisualC++与Matlab实现[M].北京:人民邮电出版社,2010.

[3] 邓红涛,赵庆展.基于MATLAB的图像处理研究[J].信息技术, 2009(2):17-19.

[4] 杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].北京:清华大学出版社,2013.

[5] 余成波.数字图像处理及MATLAB实现[M].重庆:重庆大学出版社,2003.

[6] P RAMESH BABU.Digital image processing[M].Scitech Publications,2003.endprint