浅谈MATLAB在数字图像处理中的应用
作者:吕品品
来源:《数字技术与应用》2010年第09期
摘 要:介绍利用MATLAB在边缘检测方面的各种函数和算子,对图像进行处理和比较,得出各种函数和算子对图像的处理的特点;利用MATLAB实现图像增强的3种常用方法:灰度直方图均衡化、灰度变换、平滑与锐化滤波等;探讨利用MATLAB实现图像频域变换处理中的应用。
关键词:数字图像MATLAB边缘检测图像分割
中图分类号:TP3 文献标识码:A 文章编号:1007-0916(2010)09-0152-01 引言
MATLAB语言是由美国MathWork公司推出的可视化科学计算软件,它除了具有语法结构简单、数值计算高效、图形功能完备和图像处理方便等特点,还有开发符号计算、文字处理、可视化建模仿真和实时控制能力。同时涉及矩阵代数、微积分、应用数学、有限元法、科学计算、信号与系统、神经网络、数字图像处理、计算机图形学、小波分析及应用、电子线路、自动控制与通信技术、物理学和机械振动等多个领域。MATLAB中的绝大多数的运算都是通过Matrix Laboratory矩阵这一形式进行的,这一特点也就决定了MATLAB在处理数字图像上的独特优势。
MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。
1 利用MATLAB实现图像边缘检测
从图像的分析和理解来说,最基本的2个内容就是图像的分割和区域描述。图像分割是指将图像中有意义的对象与其背景分离,并把这些对象按照不同的含义分割开来,也就是说,图像分割就是将图像中具有不同含义的对象提取出来。区域描述是对对象本身及对象间关系的描述,使之具有某种指定的数学或符号表达形式,使计算机能够理解具体对象的具体含义。
龙源期刊网 http://www.qikan.com.cn
图像分割可以分为2种:一种是基于边界的分割技术;另一种是基于区域的分割技术。边缘检测技术是所有基于边界分割的图像分析方法的第一步,检测出边缘的图像就可以进行特征提取和形状分析了。两个具有不同灰度的相邻区域间总是存在着一定的边界,这个边界就是灰度值不连续的结果。为了计算方便起见,通常选择一阶和二阶导数来检测边界。
边缘是图像最基本的特征,边缘中包含着有价值的目标边界信息。边缘检测是图像分割、目标区域识别、区域形状提取等图像分析工作的基础,也是图像识别中提取图像特征的一个重要属性。边缘的检测可以借助空域微分算子(实际上是微分算子的差分近似)利用卷积来实现。常用的微分算子有梯度算子和拉普拉斯算子等,这些算子不但可以检测图像的二维边缘,还可以检测图像序列的三维边缘。边缘检测包括两个基本内容:一是抽取出反映灰度变化的边缘点;二是剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
使用图像处理工具箱中的edge函数提供许多微分算子模板,对于某些模板可以指定其是对水平边缘还是对垂直边缘(或者两者都有)敏感(即主要检测是水平边缘还是垂直边缘)。edge函数在检测边缘时可以指定一个灰度阈值,只有满足这个阈值条件的点才视为边界点。edge函数提供的最有效的边缘检测方法是Canny方法。Canny方法也使用拉普拉斯算子,该方法与其它边缘检测方法的不同之处在于,它使用两种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,因此这种方法较其它方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘。
2 利用MATLAB实现图像增强
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。常用的图像增强方法有灰度直方图均衡化、灰度变换以及平滑与锐化滤波等。在实际应用中,常常是几种方法联合处理,以便达到预期的增强效果。
灰度直方图均衡化。均匀量化的自然图像的灰度直方图通常在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。采用灰度直方图均衡化可使原图像灰度集中的区域拉开,使灰度分布均匀,从而增强图像整体对比度,使图像的细节清晰。MATLAB图像处理工具箱中提供了计算和显示图像的直方图的函数imhist( )和直方图均衡化的函数histeq( )。
灰度变换。灰度变换就是对图像像素灰度值进行修正,使图像灰度值动态范围加大,对比度扩展,成像均匀清晰,达到改善图像质量的目的。MATLAB提供了灰度调整函数imadjust( )可以将图像的灰度值调整到一个指定的范围。
平滑与锐化滤波。平滑技术用于平滑图像中的噪声,基本采用在空间域上的求平均值或中值。或在频域上采取低通滤波,因在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平
龙源期刊网 http://www.qikan.com.cn
滑了图像信号,但也可能使图像目标区域的边界变得模糊。而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,但同时也放大了图像的噪声。在MATLAB中,各种滤波方法都是在空间域中通过不同的卷积模板(即滤波算子)实现,可用fspecial( )函数创建预定义的滤波算子,然后用filter2( )或conv2( )函数在实现卷积运算的基础上进行滤波。
3 利用MATLAB实现图像频域变换处理
图像频域变换方法有傅立叶变换、余弦变换和小波变换等,常运用于图像压缩、滤波、编码和后续的图像特征提取分析等。MATLAB工具箱提供了常用的变换函数,例如fft2( )与iffi2( )函数分别实现二维快速傅立叶变换与其逆变换,dct2( )与idct2( )函数实现二维离散余弦变换与其逆变换,dwt2( )与idwt2( )函数实现二维离散小波变换与其逆变换。 4 结语
图像信息是人类认识客观世界的重要知识来源。数字图像处理技术在各个领域都得到了广泛的应用。实践证明,MATLAB功能强大,界面友好,且语言简洁,易学易用。它的工具箱涉及的专业领域广泛,其中图像工具箱几乎包括所有经典的图像处理方法。在进行图像处理的时候,既可以直接使用工具箱提供的函数,也可以编写程序以定义或者改进函数的功能。MATLAB软件在图像处理当中有着很多的优点,利用MATLAB工具箱可以提高图像的处理速度和工程开发的效率。 参考文献
[1] 罗军辉,冯平.MATLAB 7.0在图像处理中的应用[M].北京:机械工业出版社,2006. [2] 苏金明,王永利.MATLAB 7.0使用指南(下册)[M].北京:电子工业出版社,2004. [3] 姚敏等.数字图像处理.机械工业出版社,2006.
[4] 冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2005.
因篇幅问题不能全部显示,请点此查看更多更全内容