MATLAB在图像处理中的应用
作者:于广州 杨秀娟
来源:《中国校外教育·理论》2009年第02期
【摘 要】数字图像处理是20世纪60年代发展起来的一门新兴学科。随着微型计算机性能的提高,数字图像处理技术也得到了广泛的普及,当前图像处理技术在工业自动化、工业检测、医学、遥感探测等各个方面都发挥着十分重要的作用。对于图像处理系统来说,处理流程基本可以划分为三个阶段,首先是对获得的原始图像进行预处理;其次是抽取图像特征;最后是识别分析。其中图像预处理阶段即图像增强阶段极为重要,如果此阶段选择的处理方式不当,后面的工作将很难取得成功。所以,对原始图像进行预处理就显得十分的重要,直接影响后续的应用。MATLAB是进行图像处理的有用工具。 【关键词】MATLAB编程语言 图像平滑 边缘检测
一、MATLAB简介
MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。MATLAB语言是一种简单、高效、功能极强的编程语言。它可用于数学、计算机、电子工程、信息工程、机械工程等专业。MATLAB的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础。由各个领域的专家学者相继推出了MATLAB工具箱,而且工具箱还在不断的增加,这些工具箱给各个领域的研究和工程应用提供了有力的工具。借助于这些工具,各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省了时间。本文主要从图像处理方面对MATLAB的应用做了简单的综述。 将MATLAB用于数字图像处理,其优点在于以下几个方面: (1)强大、高效的矩阵和数组运算功能。
(2)语法规则与一般的高级语言类似,一个稍有编程基础的人能很快熟悉掌握。 (3)语言简洁紧凑,使用灵活,程序书写形式自由。而且库函数十分丰富,避免了繁杂的子程序编程任务。
(4)向用户提供各种方便的绘图功能。
龙源期刊网 http://www.qikan.com.cn
(5)提供了图像处理工具箱、数字信号处理工具箱、小波工具箱等各种功能强大的工具箱。
(6)集成了各种变换函数,不仅方便了研究人员,而且使源程序简洁明了、易实现。
二、图像处理的基本函数
1.MATLAB可处理的数字图像以及它们之间的转换MATLAB图像处理工具箱支持四种基本图像格式:索引图像、灰度图像、二进制图像、RGB图像。它们之间的转换函数如下: (1)灰度图与索引图的相互转换函数
[x,MAP]=gray2ind(I,n)将灰度图I转换成基有颜色图gray(n)的索引图; [I]=ind2gray(X,MAP)将基有颜色图MAP的图像X转换为灰度图。 (2)RGB图像转换为灰度图函数
I=rgb2gray(RGB)将真彩色RGB转换为灰度级亮度图像I。 (3)RGB图像与索引图像相互转换函数 rgb2ind(),ind2rgb() 2.图像的输入输出函数
I=imread(‘imagename’);读取一幅图像到矩阵I中。imwrite(I,imagename)将矩阵I中数据写入图像imagename。
imagesc(I)将rgb图像I画出。 imshow(I)将灰度图像I画出。 warp()显示图像为纹理表面函数。
三、图像增强
龙源期刊网 http://www.qikan.com.cn
图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级内容,任何一幅图像的直方图都包含了丰富的信息,它主要用在图像分割,图像灰度变换等处理过程中。从数学上来说,图像直方图是图像各灰度值统计特性与图像灰度值的函数,它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。
在获取的图像中,影响系统图像清晰程度的因素很多,例如,室外光照度不够均匀就会造成图像灰度过于集中;由CCD(摄像头)获得的图像经过A/D(数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染,等等。因此,图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。
MATLAB中提供了专门绘制直方图的函数imhist()、调整对比度函数imadjust()和直方图均衡化函数histeq()。用它们可以很简单的绘制出图像的灰度直方图、灰度级调整后的直方图和均衡化的直方图,以及相应的图像。程序和图像如下; i=imread(‘tire.tif’);%读取图像; j=imadjust(i,[0/255 120/255],[]);
%由于原图像的直方图的对比度很低,灰度级集中在0—120范围内,如果只取这个范围内的灰度,并扩展到[0,255],则会明显增强图像对比度 k=histeq(i)
subplot(1,3,1),imshow(i),title(“原图像”)
subplot(1,3,2),imshow(j),tide(“灰度级调整后的图”) subplot(1,3,3),imshow(k),tide(“直方图均衡化后的图”) figure,subplot(1,3,1),imhist(i,64),tide(“原图像对应直方图”) subplot(1,3,2),imhist(I,64),tide(“灰度级调整后的直方图”) subplot(1,3,3),imhist(k,64),tide(“均衡化后的直方图”) 四、图像平滑
龙源期刊网 http://www.qikan.com.cn
图像平滑主要是为了消除噪声。噪声并不限于人眼所能看得见的失真和变形,有些噪声只有
在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变得模糊不清,如何既平滑掉噪声又尽量保持图像细节,是图像平滑主要研究的任务。MATLAB的图像处理工具箱里也设计了许多的滤波器,如均值滤波器、中值滤波器、维纳滤波器等。我们可以很方便的运用一些函数完成数字滤波工作,从而改善图像质量。
用滤波器祛除图象噪声(分别用均值滤波、中值滤波及维纳滤波器祛除加入高斯噪声的图象)程序和程序如下: i=imread(‘eight.tif’)
subplot(2,3,1),imshow(i),tide(“原始图像”) j1=imnoise(I,’gaussian’,0,0.02);%加入高斯噪声 subplot(2,3,2),imshow(j1),tide(“加入高斯噪声后图像”) g=medfdt2(i1)%进行中值滤波
subplot(2,3,4),imshow(g),title(“中值滤波后图像”) w=wiener2(i1,[5 5])%进行一次维纳滤波 subplot(2,3,5),imshow(w),title(“维纳滤波后图像”) w1=wiener2(w,[5 5])%进行二次维纳滤波
subplot(2,3,6),imshow(w1),title(“两次维纳滤波后图像”)
龙源期刊网 http://www.qikan.com.cn
从效果图10可以看出,维纳滤波对含有高斯噪声的图像滤波效果较好。五、边缘检测 边缘检测是一种重要的区域处理方法。边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。边缘检测是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度、颜色或者纹理特征。实际上,就是检测图像特性发生变化的位置。边缘检测包括两个基本内容:一是抽取出反映灰度变化的边缘点;二是剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化地带。对这种变化最有用的两个特征是灰度的变化率和方向。边缘检测算子可以检查每个像素的邻域,并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。MATLAB工具箱提供的edge()函数可针对sobel算子、prewitt算子、RobertS算子、LoG算子和canny算子实现检测边缘的功能。基于灰度的图像分割方法也可以用简单的MATLAB代码实现。
除以上介绍的一些基本的图像处理功能外,还有许多基于数学形态学与二值图像的操作函数,如二值图像的膨胀运算dilate0函数、腐蚀运算erode0函数、种子填充功能bwfill()函数等。
龙源期刊网 http://www.qikan.com.cn
六、结束语
本文只是进行了一些简单的图像处理,MTALAB软件本身还包含一些复杂的图像处理命令,四权树分解、图像分割算法,等等。总之,MTALAB作为一个强大的数据处理软件为我们进行科学研究提供了极大的方便。
参考文献:
[1]黄剑玲.利用MATLAB进行数字图像的分析和处理[J].计算机与现代化,2000,70(6):104—107.
[2]李了了,邓善熙.MATLAB在图像处理技术方面的应用[J].徽计算机信息,2003,19(2):65-66.
[3]许志影,李晋平.MATLAB及其在图像处理中的应用[J].计算机与现代化,2003,92(4):64—65.
[4]孙兆林.MATLAB6.x图像处理[M].北京:清华大学出版社,2002.
[5]何希平,张琼华.基于MATLAB的图像处理与分析[J].重庆工商大学学报(自然科学版),2003,20(2):22—26.
[6]于润伟.MATLAB基础及应用EM].北京:机械工业出版社,2003.
龙源期刊网 http://www.qikan.com.cn
因篇幅问题不能全部显示,请点此查看更多更全内容