1、沈阳理工大学学士学位论文摘 要社会的进步和科技的发展使人们急需一种可靠、简便、快捷的手势识别技术。近些年来手势识别由于其具有非接触的识别方式、快速的识别过程和稳定的识别系统等优点受到了人们广泛的关注。本文基于MATLAB,设计并实现了一种基于MATLAB的手势识别系统。首先,文章介绍了研究手势识别技术的意义和目的。其次,由于手势图像的尺寸、角度、清晰度等问题对手势识别有非常大的影响,所以我们先对其进行图像预处理。本文提供的预处理方法非常丰富。最后,重点讲述了本文应用的手势识别算法。并且在MATLAB上对手势识别算法进行仿真。对仿真结果进行了详细地分析。关键词;MATLAB;手势识别;图像预处理
2、ABSTRACTThe progress of the society and the development of science and technology make people urgently need a reliable, convenient and fast gesture recognition technology. Gesture recognition in recent years because of its identification with non-contact way, fast recognition process and the stabili
3、ty of the advantages of recognition system has received the widespread attention. Based on MATLAB, this paper designs and realizes a kind of gesture recognition system based on MATLAB.First, this paper introduces the research meaning and purpose of gesture recognition technology. Secondly, as a resu
4、lt of gesture image problem such as dimension, Angle, and definition of gesture recognition has great influence, so we are on the first image preprocessing. This article provides pretreatment method is very rich. Finally, focuses on the application of gesture recognition algorithm in this paper. And
5、 gesture recognition algorithm on MATLAB simulation. The simulation results are analyzed in detail.Keywords;MATLAB;Hand gesture recognition;Image prerocessing目录1 引言11.1 课题的背景和意义11.2 国内外研究现状12 手势识别研究综述42.1 手势的定义42.2 手势识别的意义42.3 手势识别的主要内容42.4 手势识别的方法53 手势图像的格式及基本操作63.1 手势图像格式63.1.1 数字图像的表示63.1.2 数字图像的
6、灰度图63.1.3 TIFF与BMP图像格式73.2 通用的图像操作93.2.1 图像的剪切93.2.2 图像的缩放93.2.3 图像的亮度调整104 手势图像的预处理114.1 图像平滑114.1.1 局部平均法114.1.2 中值滤波法124.1.3 频域平滑技术124.2 图像二值化124.2.1 p-参数法134.2.2 模式法134.2.3 可变阀值法135 MATLAB介绍145.1 MATLAB概述145.2 MATLAB的功能165.3 MATLAB语言特点165.4 MATLAB语言的优势185.5 MATLAB数组与矩阵205.6 MATLAB函数216 基于MATLAB的
7、手势识别实现方法236.1 手势表现特征分析236.2 特征提取236.3 MATLAB中手势识别的仿真256.3.1 输入待识别手势图片266.3.2 判断输赢27结 论29致 谢30参考文献31附录A 源代码35附录B 英文原文文献38附录B 中文翻译48341 引言1.1 课题的背景和意义人与计算机的交互活动越来越成为人们口常生活的一个重要组成部分。特别是最近几年,随着计算机技术的迅猛发展,研究符合人机交流习惯的新颖人机交互技术变得异常活跃,也取得了可喜的进步。这些研究包括手势识别、面部表情识别、唇读、头部运动跟踪、凝视跟踪、人脸识别、以及体势识别等等。总的来说,人机交互技术己经从以计算
8、机为中心逐步转移到以人为中心,是多种媒体、多种模式的交互技术。基于MATLAB的手势识别研究正是顺应了这一潮流。手势是一种自然、直观、易于学习的人机交互手段。以人手直接作为计算机的输入设备,人机之间的通讯将不再需要中间媒体,用户可以简单地定义一种适当的手势来对周围的机器进行控制。以人手直接作为输入手段与其他输入方法相比较,具有自然性、简洁性,和丰富性、直接性的特点,因此用计算机来识别手势提供了一个更自然的人机接口。但是由于手势本身具有的多样性、多义性以及时间和空间上的差异性等特点,加之人手是复杂变形体以及视觉本身的不适定性,因此基于MATLAB的手势识别是一个多学科交叉的、富有挑战性的研究课题
9、。为了寻找突破口,必须研究人机交流中的手势用法,从而确定合理的研究范围。手势识别的研究可以应用于计算机辅助哑语教学、电视节目双语播放、虚拟人的研究、电影制作中的特技处理、动画的制作、医疗研究、游戏娱乐等诸多方面,同时也有助于改善和提高聋哑人的生活学习和工作条件,为他们供更好的服务;另外,手势的研究涉及到教学、计算机图形学、机器人运动学、医学等多学科。因此,手势识别的研究是一个非常有意义的课题。手势输入在人机交互中应用的精髓不在于用来独立的用作空间指点,而是作为语言、视线、唇语等交互通道提供空间的或其它约束信息,以消除在单通道输入时存在的歧义,这样就可以以充分性取代精确性。1.2 国内外研究现状
10、在新的人机交互领域,国际上己经出现付诸应用的人机交互系统,2003年12月,美国密歇根州的Cybernet系统公司开发出一套名为手势风暴的系统,是公司针对天气预报节目开发的,主持人可以通过简单的手势来控制预报的进程;美国加州圣何塞的Canesta公司在2004年末推出一种新的设备,它可以使个人数字助理(PDA)具备手势识别功能。该设备会通过PDA内部透镜在桌面等平面上投射出键盘的影像。与此同时,它还会向该“键盘”的上方区域射出一束红外光。通过检测红外光脉冲从离开发射器、经用户手指反弹后最终回到PDA内传感器的时间,该设备可以精确感知用户手指在任一时刻的位置。光脉冲的来回程时间对应于特定的距离,
11、根据这些不同的距离可以得出手指在键盘上位置的三维图像,这样PDA就可以准确地采集用户在虚拟键盘上的操作信息;美国佐治亚理工学院有一项用手势识别减少汽车事故的研究课题,该校的研究小组开发了名为“手势面板”的设备来取代汽车上通常使用的仪表板控制设备,司机只需要在指定区域做出某个手势,即可调整车内的温度或音响的音量,而不需要转移对路面的注意力。在基于视觉手势识别方面,具有代表性的研究成果包括:1991年富士通实验室完成了对46个手语符号的识别工作;J.Davis和M.Shah将戴上尖具有高亮标记的视觉手套的手势作为系统的输入,可识别7种手势;Starner等在对美国手语中带有词性的40个词汇随机组成
12、的短句子识别率达到99.2%;K.Grobel和M.Assam从视频录像中提取特征,采用HMM技术识别262个孤立词,正确率为91.3%;此外,Vogler6与Metaxas将两种方法结合用于美国手语识别,交互采用一个位置跟踪器及三个互相垂直的摄像机作为手语输入设备,完成了53个孤立词的识别,识别率为89.9% 。利用数据手套等典型传感设备的方法中,CMU的Christopher Lee和Xu在1995年完成了一个操纵机器人的手势控制系统;M.W.Kadous用PowerGloves作为手语输入设备,识别由95个孤立词构成的词汇集,正确率为80% 。面对如此多的新型用户接口,有分析家指出:简便
13、性和直观性是其是否成功的关键标准在我国,哈尔滨工业大学的吴江琴、高文等给出了ANN与HMM的混合方法作为手语的训练识别方法,以增加识别方法的分类特性和减少模型的估计参数的个数,将ANN-HMM混合方法应用于有18个传感器的CyberGlove型号数据手套的中国手语识别系统中,孤立词识别率为90%,简单语句级识别率为92%。接下来高文等又选取Cyberglove型号数据手套作为手语输入设备,并采用了DGMM(ynamic Gaussian Mixture Mode)为系统的识别技术,即利用一个随时间变化的具有M个分量的混合Gaussian N一元混合密度来模型化手语信号,可识别中国手语字典中27
14、4个词条,识别率为98.2%。与基于HMM的识别系统比较,这种模型的识别精度与HMM模型的识别精度相当,其训练和识别速度比HMM的训练与识别速度有明显的改善。他们为了进一步提高识别速度,识别模块中选取了多层识别器,可识别中国手语字典中的274个词条,识别率为97.4%。与基于单个DGMM的识别系统比较,这种模型的识别精度与单个DGMM模型的识别精度基本相同,但其识别速度比单个DGMM的识别速度有明显的提高。2000年在国际上他们首次实现了5000词以上的连续中国手语识别系统。另外,清华大学祝远新、徐光裕等给出了一种基于视觉的动态孤立手势识别技术,借助于图像运动的变阶参数模型和鲁棒回归分析,提出
15、一种基于运动分割的图像运动估计方法,基于图像运动参数,构造了两种表现变化模型分别作为手势的表现特征,利用最大最小优化算法来创建手势参考模板,并利用基于模板的分类技术进行识别,对12种手势的识别率超过90%;在进一步研究中,他们又给出了有关连续动态手势的识别,融合手势运动信息和皮肤颜色信息,进行复杂背景下的手势分割,通过结合手势的时序信息、运动表现及形状表现,提出动态手势的时空表现模型,并提出基于颜色、运行以及形状等多模式信息的分层融合策略抽取时空表观模型的参数。最后,提出动态时空规整算法用于手势识别,对12种手势,平均识别率高达97%。台湾大学的Liang等人利用单个VPL数据手套作为手语输入
16、设备,可识别台湾手语课本中的250个基本词条,识别率为90.5% 。2 手势识别研究综述2.1 手势的定义由于手势(gesture)本身具有多样性和多义性,具有在时间空间上的差异性加上不同文化背景的影响对手势的定义是不同的。这里把手势定义为:手势是人手或者手和臂结合所产生的各种姿势和动作,它包括静态手势(指姿态,单个手形)和动态手势(指动作,由一系列姿态组成)。静态手势对应模型参数空间里的一个点,而动态手势对应着模型参数空间里的一条轨迹,需要使用随时间变化的空间特征来表述。手势和姿势(posture)的主要区别在于姿势更为强调手和身体的形态和状态而手势更为强调手的运动。2.2 手势识别的意义
17、目前,手势识别技术的应用在当前是比较热门的研究课题,已经有了相当丰富的手势识别理论研究,并有不少的应用实践。由于人们的研究目的需求不同,在具体的处理方面就产生了不同的处理技术。将计算机手势识别技术应用于图书馆虚拟现实导航系统之中,使用户能够身临其境的以自然的方式,在虚拟的场景中获得真实的感受成为一种可能。用手势进行人机交互十分自然、高效。以人手直接作为输入手段与其它输入方法相比较,具有自然性、简洁性和丰富性、直接性的特点。因此,用计算机来识别手势提供了一个更自然的人机接口。使用计算机手势识别技术去识别用户输入的手势动作,并根据其识别的结果去驱动图书馆虚拟现实导航系统,用户将摆脱诸多外部硬件设备
18、的限制,解放身体,自由的在空间中以简单的手势动作驱动应用。因此,研究手势识别技术的实现,并使用计算机手势去操作图书馆虚拟现实导航系统具有现实意义。2.3 手势识别的主要内容(1) 针对手势输入技术和方法的研究,采用基于计算机视觉的手势输入方 法,识别自然手势,使人机交互更加灵活、方便。(2) 逐一分析手势识别各环节的技术,对手势图像进行处理、分割、特征 提取、匹配,选取合适技术,设计图书馆虚拟现实导航系统方案。(3) 结合以上各项研究成果,应用VC+开发工具,构建图书馆虚拟现实导航 系统。实验以上研究的各项关键技术,并进行评测和验证。2.4 手势识别的方法在基于形状特征的识别算法中,我们在边界
19、图像的基础上根据手势区域的形状特征对手势图像进行粗分类,按照手势图像中手指的方向及数目把手势图像分成向上、向右、向下等类别,然后分别在边界图像和二值图像的中提取手势图像面积、周长、重心距等特征,构成s维特征向量,最后采用类似度进行模板匹配,实现对字母手势的细分类;在基于傅立叶描述子的识别算法中。首先采用八邻域搜索法对二值化的手势图像进行边缘检测,得到连通的手势外轮廓,然后计算边界点序列的傅立叶系数得到傅立叶描述子,并将傅立叶描述子进行归一化,构建手势图像的特征向量,最后通过计算输入手势的特征向量与样本库中每一图像的特征向量的欧式距离,判定输入图像与样本图像间的匹配程度,我们把待识输入图像归为距
20、离最小的那一类。实验对中国手语中字母手势进行识别,取得了较好的效果。本文采用的识别流程如图2.1:图片预处理特征提取手势识别输入图片图2.1 手势识别流程图3 手势图像的格式及基本操作为了使计算机能够对各种现象进行分类识别,要用计算机可以运算的符号来表示所研究的对象。通常输入对象的信息有三种类型:(1) 二维图像如文字、指纹、地图、照片这类对象。(2) 一维波形如脑电图、心电图、机械振动波形等。(3) 物理参量和逻辑值前者如在疾病诊断中病人的体温及各种化验数据等;后者如对某参量正常与否的判断或对症状有无的描述,如疼与不疼,可用逻辑值0和1来表示。在引入模糊逻辑的系统中,这些值还可以包括模糊逻辑
21、值,比如很大、大、比较大等。在手势识别中,处理的对象是手势的照片,我们提取数据的目标就是将手势的图像用一个特征向量来表示出来。在本文中所处理的图片主要有TIFF与BMP两种格式,TIFF格式相对来说要复杂一些,可以存储的图像也要丰富得多,它可以存储多张图片,还可以存储多种压缩格式的图片,而BMP格式的图片简单、通用,一般在应用程序中可以方便的显示。因此我们的工作除了熟悉多种格式的图像文件以外,还包括实现多种格式图像文件之间的相互转换,并最终提取出表示图像的特征向量。3.1 手势图像格式3.1.1 数字图像的表示数字图像的表示方式可以分为两类:位图方式和矢量方式。位图方式该方式将一副图像划分为一
22、张栅格,格中每一部分(像素)或色彩单独记录,位图中的一个数据点的位置决定了该数据点所代表的像素,即数据点与图像对应,“位图”由此而来,位图适用于色彩、阴影或形状变化负责的图像,如照片、绘画或数字化视频等。矢量方式这种方式用一系列线段或其他造型描述一副图像,它适合与线型图等简鱼的国戒成图像。3.1.2 数字图像的灰度图灰度又称为“Graysacle,它代表像素的亮度值。在一副黑白照片中,不是简单的非黑即白,而是逐步过渡的,他们可区分为不同的亮度等级即灰度级。灰度划分越细,越能准确的再现图像。目前普遍采用的是256灰度级,即每个像素的灰度用一个字节(a位)表示,其中0表示全黑,256表示全白。3.
23、1.3 TIFF与BMP图像格式TIFF图像文件主要由三种数据组合而成:表头、标识信息区和图像数据区。表头信息指出了标识信息区在文件中的地址,而标识信息区由一组标志信息组成,它们表示出了TIFF图像所有的属性并且指明了图像数据区的地址,图像数据区将图像的像素数据以自上而下,自左到右的顺序依次存放。它们的关系如图3.1所示:标识信息区图像数据区TIFF表头数据图3.1 关系图若标识信息区末端的标志参数不为0,那么该参数就表示下一个标识信息区的地址,在TIFF图像中,每一个标识信息区和一个图像数据区就表示一幅图像,因此若文件中含有多个标识信息区就表明该文件中存储了多幅图像。BMP图像文件也分为三部
24、分:表头、调色板和图像数据。表头长度固定为54个字节,里面包含了图像所有属性的数据包括宽度、高度、颜色信息等。调色板数据中每一种颜色以四个字节来表示,它们分别是Blue分量、Green分量、Red分量和一个保留值。在BMP图像文件中,图像的数据以自下而上,自左到右的顺序存放,并且必须保证每行的数据必须是4个字节的整数倍。BMP图像文件中各部分内容非常紧凑,所以省去了标志相应地址的信息。TIFF图像和BMP图像在调色板数据方面存在着差异,这在实现两种格式图像的转换时非常重要。在BMP图像中除了全彩色RGB图像以外,所有不超过256色的图像必须带有调色板信息,即使是单色图像也不例外;而在T环F图像
25、中有三种情况可以不带有调色板信息,一是24位真彩色图像,二是单色图像,三是256色灰度图像。表3.1描述了两种格式图像在调色板数据方面的差异。表3.1 TIFF格式与BMP格式的图像调色板比较TIFF格式图像BMP格式图像单色图像(2色)无有16色图像有有256色彩色图像有有256色灰度图像无有24位全彩色图像无无为了实现两种格式图像之间的顺利转换,特别是从TIFF图像到BMP图像,需要填充相应的调色板信息。通过观察我们可以发现要填充的调色板信息存在某种规律,对于单色图像,它所对应的调色板信息包含两种颜色,这两种颜色的RGB表示分别为白(255,255,255)和黑(0,0,0)它将黑与白之间
26、的灰度颜色分成了256个等级假定白(255,255,255)对应的等级为255,黑(0,0,0)对应的等级为0,那么对于0到255之间的任一个灰度等级k,可以用相应的RGB颜色(k,k,k)来表示。这样我们就能顺利地将TIFF图像文件转换成BMP文件,而反过来操作则比较简单,只需要在处理单色图像以及256色灰度图像时去除相应的调色板信息即可。由于两种图像格式的差异,提取数据以及存储图像数据的操作是不同的,但在提取出了图像的数据以后,所进行的任何图像处理操作就与图像原有的格式不再相关,因此我们在处理图像时设计了三个图像类:CTifTmage、CbmpImage,Clmage,其中CTifImag
27、e专门用于TIFF格式图像的处理,CBmpImage专门用于BMF格式图像的处理,这两个类都继承于类Cimage,在CImage中包括了图像数据提取与存储的接口、图像处理的一些通用操作如剪切、缩放、旋转、二值化等等。这样所有特定格式图像数据提取与存储的细节将封装在相应的派生类中,对于使用图像类(Cimage)的用户来说,只需要知道基类的接口就可以了。通过这种设计,我们还可以在不影响已有的数据结构的情况下实现其它格式图像的处理,因此具有很好的扩展性。经过以上多种格式图像的处理,我们将获得图像数据的矩阵表示,假定图像的宽度为W,图像的高度为H,那么得到的矩阵可以用以下的二维数组来表示:PixelA
28、rrayx,y 其中0xW0yH由于在现实中得到的手势图像的色彩不一,有全彩色的,也有黑白的(即256色灰度图像,如身份证照片)0256色灰度图像能够很好的保留手势图像的特征,为了便于我们进行图像处理与分析,所以我们将输入的手势图像统一转换为256色灰度图像。这样,获取的像素矩阵中任一像素的取值范围为(0255)在以下的步骤中,我们处理的对象就是这个二维的像素数组。3.2 通用的图像操作手势识别中的常用图像操作包括图像的剪切、图像的缩放、图像的旋转以及图像的亮度调整。我们以PixelArrayx,y来表示原有图像的二维像素矩阵,原有图像的高度用H来表示,原有图像的宽度用W来表示,用PixelA
29、rrayNewx,y来表示结果图像的二维像素矩阵,结果图像的高度为HNew,宽度为Wnew。3.2.1 图像的剪切图像的剪切操作的函数原型为void Cimage:ClipImage ( CReet &reet ),需要输入的参数为要剪切的图像的具体的位置,即要剪切图像左上角的位置和右下角的位置。假定要剪切图像左上角位置为(left,top),右下角的位置为(right,bottom)那么我们只需要调整图像的宽度为(right-left),调整图像的高度为(bottom-top),从图像的二维数组中提取左上角到右下角之间的数据。剪切后图像的数据可以表示为:PixelArrayx, y 其中le
30、ftxrighttop y bottom3.2.2 图像的缩放图像的缩放操作的函数原型为void Cimage CollapseOrExpandImage(double dbRatioX, double dbRatioY) e输入的参数为图像水平方向需要缩放的尺度以及图像垂直方向需要缩放的尺度。假定水平方向缩放的比例为a,垂直方向缩放的比例为b,那么,缩放后图像的高度为bH缩放后图像的宽度为aW,对于原有图像的任一点PixelArray(x,y),在缩放后对应的像素为:PixeIArrayi, j axia(x+1)by jb( y+1)令CountArray i, j 为结果图像中点(i,
31、j)对应原有图像像素的计数,那么每次有点映射到点(i,j)的像素时,将结果图像中点(i,j)的像素值加上该原有图像点(x,y)的像素值,并将CountArrayi,j加1。 PixelArrayNewi, j=PixelArrayNewi, j+PixelArrayx, y CountArrayi, j=CountArrayi, j=1 由于经缩放后,结果图像中的某一点的像素可能对应原有图像中的多个像素,所以对于这种情况需要对该点的像素求取平均值:PixelArrayNewi, j=PixelArrayNewi, j/ CountArrayi, j3.2.3 图像的亮度调整图像的亮度调整的函数
32、原型为void Cimage:AdjustLight (int nLight)。输入的参数为要调整的亮度的大小,nLight为正数表示增强亮度,为负数表示降低亮度。在手势识别中我们采用的均为256色灰度图像,因此图像中任一点的像素值的饱合度为0,也就是说任一点的R. G, B三值的大小相等。在这种情况下,调整图像的亮度可以通过以下方式进行:假定要调整的亮度为nLight,图像中任意一种颜色的R. G. B三值分别用nR,nG,nB表示,则该颜色调整后的R, G, B三值分别为:nR+nLightnG+nLightnB+nLight4 手势图像的预处理当把观察到的手势图像转换成可用计算机处理的数
33、字图像时,图像在生成、传输或变换过程中会受到各种因素的干扰和影响,图像的画质将会因噪声而在不同程度上出现歧变,本文对输入图像进行了平滑、锐化、二值化等预处理。预处理的目的是去除图像中的噪声,加强图像中的有用信息,并对输入方式或其他愿意造成的退化现象进行复原,图像预处理过程是对图像的一个过滤过程,要排除干扰保留需要处理的部分,并过滤掉不需要的部分。由于成像设备在读入手势图像时会扩大取景范围,其中含很多无效的像素点,这会影响以后的处理,增加计算量,因此首先完成的是尽可能准确从读入图像中取出包含被测物体的图像部分,这个过程的主要难度在于判断图像是否属于需要保留的部分,且必需保证其准确性,否则将会对下
34、一步图像分析和判断造成严重的影响。4.1 图像平滑图像在生产和传输过程中常受到各种噪声的干扰和影响,使图像质量下降,为了抑制噪声改善图像质量,必须对图像进行平滑处理,这可在空域或频域中进行,在平滑噪声时应尽量不损害图像中边沿和各种细节。对于滤除图像中的噪声,人们已经提出了很多的方法。通常,将数字图像的平滑技术划分为两类:一类是全局处理,即对噪声图像的整体或大的块进行校正以得到平滑的图像,例如在变换域中使用Wiener滤波、最小二乘滤波等,使用这些技术需要知道信号和噪声的统计模型,但对于大多数图像而言,人们不知道或不可能用简单的随机过程精确的描述统计模型,而且,这些技术计算量也相当大:另一类平滑
35、技术是对噪声图像使用局部算子,当对某一像素进行平滑处理时,仅对它的局部小邻域的一些像素加以运算,其优点是计算效率高,而且可以多个像素并行处理,因此可实现实时或准实时处理。4.1.1 局部平均法局部平均法是一种直接在空域上进行平滑处理的技术。认为图像是由许多灰度恒定的小块组成,相邻像素间存在很高的空间相关性,而噪声则是统计独立的。因此,可用像素邻域内的像素的平均灰度值代替该像素原来的灰度值,实现图像的平滑。最典型的局部平均法就是非加权邻域平均,它均等地对待邻域中的每个像素。该算法简单,计算速度快,但主要缺点是在降低噪声的同时使图像模糊,特别在边沿和细节处。邻域越大,模糊程度越厉害。对上述算法的改
36、进算法有超限像素平滑法、灰度最相近的K个邻点平均法、剃度倒数加权平滑、自适应滤波等。4.1.2 中值滤波法中值滤波也是一种局部平均平滑技术,它对脉冲干扰和椒盐的抑制效果好,在抑制随机噪声的同时能使边沿减少模糊。中值滤波法是一种非线形的图像平滑方法,它对一个滑动窗口的诸像素灰度排序,用其中值代替窗口中心像素原来的灰度值(若窗口中有偶数个像幸,则取两个中间值的平均)。中值滤波的效果与局部平均的效果相比较,中值滤波有以下优点:一、降低噪声的效果比较明显;二、在灰度值变化较小的情况下可以得到很好的平滑处理;三、降低了图像边界部分的模糊程度。4.1.3 频域平滑技术图像的平滑除了可以在空域中进行外,也可
37、以在频域中进行。频域中的平滑是一维信一号低通滤波器概念在二维图像中的直接推广。图像经过二维傅立叶变换后,噪声频谱一般位于空间频率较高的区域,而图像本身的频率分量则处于空间频率较低的区域内,因此可以通过低通滤波器的方法,使高频分量受到抑制,从而实现图像的平滑。滤波器的数学表达式为:G (u, v) =H (u, v) F (u,v)4.2 图像二值化根据图像处理的目标要求,需要把多灰度级的图像变成只有两个灰度级的图像,即对图像进行二值化。设图像f(x,y)的灰度值范围在a,b,二值化阐值设为T(a=T=T时0 当f(x,y)T时g(x,y)是二值图像,通常我们用1来表示对象物(黑色区域),用0来
38、表示背景区域(白色区域)。对闭值T的选择有多种方法,它决定着二值图像的质量。按照闭值T的选择方法,图像二值化可分为以下几种。4.2.1 p-参数法当预先知道对象物在图像中所占的面积比率时,将灰度直方图中面积比率为P%的点作为闭值,这种方法称为P一参数法(p-tile method)。但在实际中,己知对象所占的面积比率的状况非常少见,通常都是按照一定的规律推算出来例如在书画作品中,文字部分所占的面积比率一般情况下是可以估计出来这时用这种方法来处理时比较有效的。4.2.2 模式法当灰度直方图具有双峰性的时候,对象物和背景的灰度一般分别在两个山峰的附近,因此,可去山谷的中心点为闭值,这种方法称为模式
39、法(modemethod)。但是,实际情况中,灰度直方图不是很平滑的,会存在一些因小的凹凸而产生的局部极小值,这样给自动判断造成很大的不便。比较简单的方法是,先将灰度直方图进行平滑处理,再进行阂值的选择,或者是以选出的灰度为中心考查1k的两点,用此两点来判断选出的灰度值的点是否极大值或者极小值点。这样的处理方法会产生一些噪声,但对判断不会造成大的影响。4.2.3 可变阀值法在不均匀的照明条件下所得到的灰度图像,采用确定闭值进行二值化的时候,到不到期望的图像。在这种情况下,有两种解决方案,一种是当照明强度可用图像坐标的函数来表示是,被观测图像g(x,y)可用下式来描述:g(x,y) = c(x,
40、y)f(x,y)其中,f(x,y)是在均匀照明条件下的图像,c(x,y)是表示照明不均匀的程度系数。另一种方案是把图像分成若干个子区域,在各个子区域中计算其灰度直方图。如果在子区域中同时存在背景和对象物,那么其灰度直方图呈双峰,这时可用模式法等进行二值化处理这种情况下,每个子区域一般都不相同,这种二值化方法称为可变闭值法(variable threshold selection method)。5 MATLAB介绍5.1 MATLAB概述MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。它集数
41、值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境,在这个环境中,问题与求解都能方便地以数学的语言(主要是矩阵形式)或图形方式表达出来。与大家常用的Fortran和C等高级语言相比,MTALAB的语法规则更简单,更贴近人的思维方式,被称为“草稿纸式的语言”。MATLAB最初作为矩阵实验室,主要向用户提供一套非常完善的矩阵运算命令。随着数值运算的演变,它逐渐发展成为各种系统仿真、数字信号处理、科学可视化的通用标准语言。在科学研究和工程应用的过程中,往往需要大量的数学计算,传统的纸笔和计算机已经不能从根本上满足海量计算的要求,一些技术人员尝试使用Basic,Fortran,C
42、/C+等语言编写程序来减轻工作量。但编程不仅仅需要掌握所用语言的语法,还需要对相关算法进行深入分析,这对大多数科学工作者而言有一定的难度。与这些语言相比,MATLAB的语法更简单,更贴近人的思维方式。用MATLAB编写程序,犹如在一张演算纸上排列公式和求解问题一样高效率,因此被称为“科学便笺式”的科学工程计算语言。Matlab诞生于20世纪70年代,它的编写者是Clevel Moler博士和他的同事。当时,他们利用Fortran开发了两个子程序库ELSPACK和LINPACK。这两个程序库是要求解线性方程的程序库。但是,Cleve Moler发现学生使用这两个程序库有困难,主要问题是因为接口程
43、序不好写,很花费时间。于是,Cleve Moler自己动手,在业余时间里编写了ELSPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB,意为矩阵(Matrix)和实验室(Laboratory)的组合。以后几年,MATLAB作为免费软件在大学里被广泛使用,深受大学生的喜爱。1983年早春,Cleve Moder到Stanford大学访问,作为工程师的John Little受到了MATLAB的深深吸引,他敏锐地察觉到MATLAB在工程领域潜在的应用天地。同年,他和Cleve Moder、Steve Bangert一起用C语言合作开发了第二代专业版MATLAB
44、。从这一代起,MATLAB的核心使用C语言来编写,并且在具备数值计算能力的基础上,具有了数据视图的功能。1984年,Cleve Moler和John Little成立了Math Works公司,正式把MATLAB推向场,并继续进行MATLAB的开发。Math Works公司1993年推出MATLAB 4.0,1995年推出MATLAB 4.2C版(For Win3.x),1997年推出MATLAB5.0,2000年9月发布了MATLAB7,2006年3月发布了MATLAB 2006a,2006年9月发布了MATLAB 2006b,2007年3月发布了最新的MATLAB R2007。每一个新版本
45、的推出都使MATLAB有了长足的进步界面越来越友好,内容越来越丰富,功能越来越强大,帮助系统越来越完善。MATLAB长于数值计算,能处理大量的数据,而且效率比较高。Math Works公司在此基础上加强了MATLAB的符号计算、文字处理、可视化建模和实时控制能力,增强了MATLAB的市场竞争力,使MATLAB成为市场主流的数值计算软件。MATLAB产品族是支持从概念设计、算法开发、建模仿真到实时实现的理想的集成环境。无论进行科学研究还是产品开发,MATLAB产品族都是必不可少的工具。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如 MAT
46、LAB、Xmath、Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,如Mathematica、Maple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率较低。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB。经过多年的国际竞争,MATLAB 已经占据了数值型软件市场的主导地位。在MATLAB进入市场前,国际上的许多应用软件包都是直接以FORTRAN和C语言等编程语言开
47、发的。这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。5.2 MATLAB的功能MATLAB的核心是一个基于矩阵运算的快速解释程序,它交互式地接受用户输入的各项命令,输出计算结果。MATLAB提供了一个开放式的集成环境,用户可以运行系统提供的大量命令,包括数值计算、图形绘制和代码编制等。具体来说,MATLAB具有以下功能。(1) 数据可视化功能。(2) 矩阵运算功能。(3) 大量的工具箱。(4) 绘图功能。(5) GUI设计。(6) Simulink仿真。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100