MATLAB在图像处理理论和技术的发展及应用
摘要:数字图像处理技术是随着计算机技术的发展而开拓出的一个应用领域。图像识别技术是一个很广阔的研究领域,它涉及图像处理、模式识别、计算机视觉以及许多应用专业知识背景。在车牌识别、身份证人像采集、针织印刷和桥梁检测等等方面,数字图象处理技术都有着非常广泛的应用。本文介绍了MATLAB语言的特点以及图像处理工具箱实现的经典图像处理技术。应用该工具箱对一实拍的芯片图像进行前期预处理,通过实例验证了该语言具有强大的矩阵运算与图形处理能力,是一种简洁易学,可读性强、功能强大的应用软件,对它的应用可以快速实现模拟仿真,大大提高实验效率。
关键词:数字图像处理;MATLAB语言;图像处理;灰度图像;发展方向 1.数字图像处理技术的主要优点
(1)再现性好 数字图像处理与模拟图像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化。只要图像在数字化时准确地表现了原稿,则数字图像处理过程始终能保持图像的再现。
(2)处理精度高 按目前的技术,几乎可将一幅模拟图像数字化为任意大小的二维数组,这主要取决于图像数字化设备的能力。现代扫描仪可以把每个像素的灰度等级量化为16位,甚至更高,这意味着图像的数字化精度可以达到满足任一应用需求。对计算机而言,不论数组大小,也不论每个像素的位数多少,其处理程序几乎是一样的。换言之,从原理上讲不论图像的精度有多高,处理总是能实现的,只要在处理时改变程序中的数组参数就可以了。
(3)适用面宽 图像可以来自多种信息源,它们可以是可见光图像,也可以是不可见的波谱图像。从图像反映的客观实体尺度看,可以小到电子显微镜图像,大到航空照片、遥感图像甚至天文望远镜图像。这些来自不同信息源的图像只要被变换为数字编码形式后,均是用二维数组表示的灰度图像组合而成,因而均可用计算机来处理。即只要针对不同的图像信息源,采取相应的图像信息采集措施,图像的数字处理方法适用于任何一种图像。
(4)灵活性高 图像处理大体上可分为图像的像质改善、图像分析和图像重建三大部分,每一部分均包含丰富的内容。由于图像的光学处理从原理上讲只能进行线性运算,这极大地限制了光学图像处理能实现的目标。而数字图像处理不仅能完成线性运算,而且能实现非线性处理,即凡是可以用数学公式或逻辑关系来表达的一切运算均可用数字
图像处理实现。
2.数字图像处理过程
由于数字图像处理的灵活性和方便性,所以数字图像处理已成为图像处理的主流。常见的数字图像处理有:图像的采集、数字化、编码、增强、恢复、变换、压缩、存储、传输、分析、识别、分割等,其处理流程如图所示。
数字图像处理流程图
(1)图像数字化。通过取样和量化将一个以自然形式存在的图像变换为适合计算机处理的数字形式,图像在计算机内部被表示为一个数字矩阵,矩阵中每一元素称为像素。
(2)图像编码。编码的目的是压缩图像的信息量(但图像质量几乎不变),以满足传输和存储的要求,为此,可以采用模拟处理技术,再通过模-数转换得到编码,不过多数是采用数字编码技术,其编码方法可以对图像逐点进行加工,也可以对图像施加某种变换或基于区域、特征进行编码。
(3)图像增强。图像增强目的是使图像清晰或将其转换为更适合人或机器分析的形式,常用的图像增强方法有:灰度等级直方图处理;干扰抵制;边缘锐化;伪彩色处理。
(4)图像恢复。其目的是除去或减少在获得图像过程中因各种原因产生的退化,可能是光学系统的像差或离焦、摄像系统与被摄物之间的相对运动、电子或光学系统的噪声和介于摄像系统与被摄像物间的大气湍流等。
(5)图像分割。将图像划分为一些互不重叠的区域,每一区域是像素的一个连续集。通常采用把像素分入特定区域的区域法和寻求区域之间边界的境界法。这2种方法都可以利用图像的纹理特性实现图像分割。
(6)图像分析。从图像中抽取某些有用的度量、数据或信息,其目的是得到某种数值结果。图像分析需要用图像分割方法抽取出图像的特征,然后对图像进行符号化的描述,这种描述不仅能对图像中是否存在某一特定对象作出回答,还能对图像内容作出详细描述。
3.MATLAB在图像处理技术方面的应用
MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。 MATLAB 将高性能的数值计算和可视化集成在一起,构成了一个方便的、界面友好的用户环境,并提供了大量的内置函数。从而被广泛地应用于科学计算、控制系统、信息处理、神经网络、图像处理、小波分析等领域的分析、仿真和设计工作,而且利用 MATLAB 产品的开放式结构,可以非常容易地对 MATLAB 的功能进行扩充,从而在不断深化对问题认识的同时,不断完善 MATLAB 产品以提高产品自身的竞争能力。MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。本文对MATLAB图像处理工具箱进行探索及应用,实验证明该软件功能强大,语言简洁易学,人机界面友好,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好。
A、MATLAB图像处理工具箱及数字图像处理基本过程简介
数字图像处理工具箱函数包括以下15类:、⑴、图像显示函数;⑵、图像文件输入、输出函数;⑶、图像几何操作函数;⑷、图像像素值及统计函数;⑸、图像分析函数;⑹、图像增强函数;⑺、线性滤波函数;⑻、二维线性滤波器设计函数;⑼、图像变换函数;⑽、图像邻域及块操作函数;⑾、二值图像操作函数;⑿、基于区域的图像处理函数;⒀、颜色图操作函数;⒁、颜色空间转换函数;⒂、图像类型和类型转换函数。
MATLAB图像处理工具箱支持四种图像类型,分别为真彩色图像、索引色图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。下面就图像处理的基本过程讨论工具箱所实现的常用功能。
常用图像操作:
图像的读写与显示操作:用imread( )读取图像,imwrite( )输出图像,把图像显示于屏幕有imshow( ), image( )等函数。imcrop( )对图像进行裁剪,图像的插值缩放可用imresize( )函数实现,旋转用imrotate( )实现。
图像增强功能:
图像增强是数字图像处理过程中常用的一种方法,目的是采用一系列技术去改善图像的视觉效果或将图像转换成一种更适合于人眼观察和机器自动分析的形式。常用的图像增强方法有以下几种:
灰度直方图均衡化。均匀量化的自然图像的灰度直方图通常在低灰度区间上频率较大,使得
图像中较暗区域中的细节看不清楚,采用直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的。直方图均衡化可用histeq( )函数实现。
灰度变换法。照片或电子方法得到的图像,常表现出低对比度即整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行标度变换,扩大图像灰度范围,以达到改善图像质量的目的。这一灰度调整过程可用imadjust( )函数实现。
平滑与锐化滤波。平滑技术用于平滑图像中的噪声,基本采用在空间域上的求平均值或中值。或在频域上采取低通滤波,因在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平滑了图像信号,但也可能使图像目标区域的边界变得模糊。而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,但同时也放大了图像的噪声。在MATLAB中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,,可用fspecial( )函数创建预定义的滤波算子,然后用filter2( )或conv2( )函数在实现卷积运算的基础上进行滤波。
边缘检测和图像分割功能
边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征是灰度的变化率和方向。边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。MATLAB工具箱提供的edge( )函数可针对sobel算子、prewitt算子、Roberts算子、log算子和canny算子实现检测边缘的功能。基于灰度的图像分割方法也可以用简单的MATLAB代码实现。
图像变换功能
图像变换技术是图像处理的重要工具,常运用于图像压缩、滤波、编码和后续的特征抽取或信息分析过程。MATLAB工具箱提供了常用的变换函数,如fft2( )与 ifft2( )函数分别实现二维快速傅立叶变换与其逆变换,dct2( )与idct2( )函数实现二维离散余弦变换与其逆变换, Radon( )与iradon( )函数实现 Radon变换与逆 Radon变换。
除了以上基本的图像处理功能,MATLAB还提供了如二值图像的膨胀运算dilate( )函数、腐蚀运算erode( )函数等基于数学形态学与二值图像的操作函数。
B、MATLAB图像处理工具箱运用实例:
为了证明MATLAB语言是一种简洁,可读性较强的高效率编程软件,本文通过运用图像处理工具箱中的有关函数对一实拍的芯片图像进行处理。如图1,图“xinp.bmp”为一幅经过显微镜放大后用CCD拍摄的芯片原图像,该图像右边的剪切图像为从“xinp.bmp”中剪切出的将用于分析的子图像块。为了便于分析与观察,把子图像块旋转90度置于水平位置并把该图存在名为“xinp1.bmp” 的图像文件中。以上的过程可用以下代码实现。
x=imread(‘xinp.bmp’); imshow(x); y=imcrop(x); figure,imshow(y); z=imrotate(y,90); figure,imshow(z,[]);
imwrite(z, ‘xinp1.bmp’, ‘bmp’); isrgb(z)
图1 从图像“xinp.bmp”中剪切出一块子
原图“xinp.bmp”
剪切图
经判断得知该图像为一真彩色图像,首先把它转换为灰度图像,以下所有的进一步处理均采用经过灰度化处理后的图像作为原图。
1)对灰度图进行直方图均衡化处理。通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。效果比较见图2, 程序代码如下:
x=imread(‘xinp1.bmp’); y=rgb2gray(x);
imshow(y); figure,imhist(y); I=histeq(y); figure,imshow(I); figure,imhist(I);
“xinp1.bmp”的灰度化图
经直方图均衡化后
均衡化前直方
图2
均衡化后直
2)灰度调整。通过灰度调整把感兴趣的灰度范围拉开,使图像中亮的越亮,暗的越暗,分别取原图中要变换的灰度范围为(0.3,0.7)和(0.5,0.6),把变换后的图像相比较,见图3,可知原图所变换的灰度范围小,则调整后的图像反差大。
原图所变换的灰度范围为
图3
原图所变换的灰度范围为
3)灰度图像平滑与锐化处理。MATLAB图像工具箱中有多种平滑与锐化滤波函数,也可以自定义滤波算子。在此我们采用可根据图像的局部方差来调整滤波器输出的自适应滤波对图像进行平滑,及采用拉氏算子运算使图像的模糊部分得到增强。处理后的图像见图4,实现代码如下:
x=imread(xinp1.bmp); x=rgb2gray(x); x=double(x); p=wiener2(x); imshow(p,[]);
h=[0 1 0;1 –4 0 ;0 1 0]; q= conv2(x,h, ‘same’); r= x - q ;
figure,imshow(r,[]) ;
采用自适应滤波
利用拉氏算子卷
图4
4.数字图像处理技术的未来发展方向
图像处理中输入的是质量低的图像,输出的是改善质量后的图像。常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片进行图像处理,如几何校正、灰度变换、去除噪声等,并考虑了太阳位置和月球环境的影响。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,获得了月球的地形图、彩色图及全景镶嵌图,为人类登月创举奠定了基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术探测研究中,数字图像处理技术都发挥了巨大的作用。
数字图像处理技术的大发展是从20世纪90年代初开始的。自1986年以来,小波理论与变换方法迅速发展,它克服了傅立叶分析不能用于局部分析等方面的不足之处,被认为是调和分析半个世纪以来工作之结晶。Mallat在1988年有效地将小波分析应用于图像分解和重构。小波分析被认为是信号与图像分析在数学方法上的重大突破。随后数字图像处理技术迅猛发展,到目前为止,图像处理在图像通讯、办公自动化系统、地理信息系统、医疗设备、卫星照片传输及分析和工业自动化领域的应用越来越多。
进入21世纪,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就。属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等。该技术成为一门引人注目、前景远大的新型学科。
数字图像处理技术未来发展大致体现在在以下4个方面:1)向高速、高分辨率、立体化、多媒体、智能化和标准化方向发展。具体表现:(1)提高硬件速度。这不仅仅要提高计算机的速度,而且A/D和D/A的速度要实时化;(2)提高分辨率。主要是提高采集分辨率和显示分辨率,其主要困难是显像管的制造和图像图形刷新存取速度;(3)立体化。图像是二维信息,信息量更大的三维图像将随意计算图形学及虚拟现实技术的发展将得到广泛应用。(4)多媒体化。20世纪90年代出现的多媒体技术,其关键技术就是图像数据的压缩,目前数据压缩的国际标准有多个,而且还在发展,它将朝着人类接收和处理信息最自然的方式发展。(5)智能化。力争使计算机识别和理解能够按照人的认识和思维方式工作,能够考虑到主观概率和非逻辑思维。(6)标准化。从整体上看,图像处理技术目前还没有国际标准。2)图像和图形相结合朝着三维成像或多维成像的方向发展。3)硬件芯片的开发研究。目前结合多媒体的研究,硬件芯片越来越多,如Thomson公司ST13220采用Systolic结构设计了运动预测器,把图像处理的众多功能固化在芯片上,为实践服务。4)新理论和新算法的研究。图像处理科学经过初创造期、发展期、普及期和广泛应用期,近年来引入了一些新的理论并提出了一些新的算法,如:Wavelet、Fractal、Mor-phology、遗传算法和神经网络等,其中Fractal广泛应用图像处理、图形处理、纹理分析,同时还用于物理、数学、生物、神经和音乐等方面。
结束语
数字图像处理技术发展迅猛, 无论在理论上还是在实践上都有着巨大的潜力,对我国的现代化建设有着深远的影响。其发 展方向主要体现在以下几个方面:在高分辨率、高速度方面,其目标是实现实时处理;立体化 使图像包含的信息更为丰富和完整,将图像和图形结合实现三维成像或多维成像;智能化可实现图像的自动生成、自动识别和处理;在新理论新算法研究方面,近年来,在图像处理领域引入了一些新的理论及算法,如 Wavelet、神经网络、遗传算法等,促进了图像处理技术 在数控系统中应用的发展。MATLAB语言简洁,可读性强,工具箱涉及的专业领域广泛且功能强大。图像工具箱几乎包括所有经典的图像处理方法。由于工具箱具有可靠性和开放性,我们可以方便地直接加以使用,也可以把自己的代码加到工具箱中以改进函数功能,同时,MATLAB中的小波工具箱也有许多函数可运用于图像处理技术。因此,在图像处理技术中使用
MATLAB语言可以快速实现模拟仿真,大大提高实验效率,如果要开发实用程序,MATLAB语言还可以通过MEX动态连接库实现与C语言的混合编程,为工程应用提供了更多的便利条件。
参考文献
[1] Kenneth.R.Castleman. 数字图像处理技术[M], 北京:电子工业出版社,1998 . [2]王新成,高级图像处理技术[M],北京:中国科学技术出版社,2001. [3] 孙兆林,MATLAB 6.x图像处理[M],北京:清华大学出版社,2002.
[4] 聂颖,刘榴娣.数字信号处理器在可视电话中的应用.光电工程,1997.24(3):67-70. [5] 侯遵泽,杨文采.小波分析应用研究.物探化探计算技术,1995.17(3):1-9 [6] 李道远,袁春风.基于小波变换的数字水印综述.计算机应用与工2003.23(10)65-67.
因篇幅问题不能全部显示,请点此查看更多更全内容