Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 标准规范 > 指纹模式识别系统的设计

指纹模式识别系统的设计

收藏

本作品内容为指纹模式识别系统的设计,格式为 doc ,大小 2243597 KB ,页数为 60页

指纹模式识别系统的设计


('毕业设计学生姓名:孙胜超学号:090702115专业:______计算机科学与技术_______题目:______指纹模式识别系统的设计___指导教师:______周万珍(教授)___________评阅教师:_______________________________2013年6月河北科技大学毕业设计成绩评定表姓名孙胜超学号090702115成绩专业计算机科学与技术题目指纹模式识别系统的设计指导教师评语及成绩指导教师:年月日评阅教师评语及成绩评阅教师:年月日答辩小组评语及成绩答辩小组组长:年月日答辩委员会意见答辩委员会主任:年月日注:该表一式两份,一份归档,一份装入学生毕业设计说明书中。河北科技大学毕业设计成绩评定表姓名孙胜超学号090702115成绩专业计算机科学与技术题目指纹模式识别系统的设计指导教师评语及成绩指导教师:年月日评阅教师评语及成绩评阅教师:年月日答辩小组评语及成绩答辩小组组长:年月日答辩委员会意见答辩委员会主任:年月日注:该表一式两份,一份归档,一份装入学生毕业设计说明书中。毕业设计中文摘要为了改善特定身份鉴别持有物和特定身份鉴别知识这两大类传统身份鉴别方式的不足.使身份鉴别变的简单安全便捷,设计了一个指纹模式识别系统。指纹模式识别系统是基于C++,以VisualC++6.0作为开发工具设计完成的。系统的主要模块有指纹图像采集模块、指纹图像预处理模块、指纹图像特征提取模块、指纹图像匹配模块。指纹图像预处理模块主要完成指纹的真实化处理、智能化增强、二值化的工作,为提取指纹框架做好准备。主要设计的算法有指纹畸变校正、指纹分割、指纹均衡、智能化增强、二值化和细化处理。指纹图像特征提取模块提取的特征点主要是端点、交叉点、中心点和三角点这四大类点。指纹图像匹配模块主要是利用指纹特征点的拓扑数据结构来进行比对的。设计的系统经实验验证,科学有效。关键词指纹识别特征点智能增强匹配毕业设计外文摘要TitleTheDesignofFingerprintPatternRecognitionSystemAbstractInordertoimprovethetraditionalauthenticationwhichtheauthenticationofspecificholdingsandspecificknowledge,tomaketheauthenticationchangingsafeandconvenient,designafingerprintpatternrecognitionsystem.FingerprintpatternrecognitionsystemisbasedonC++andapplyingVisualC++6.0asdevelopmenttool.Themainmodulesofthesystemareimageacquisitionmodule,fingerprintimagepreprocessingmodule,fingerprintimagefeatureextractionmoduleandfingerprintimagematchingmodule.Thefingerprintimagepreprocessingmoduleistocompletethreeworkwhichthetruefingerprintpreprocessing,intelligentenhancementandbinary,andpreparetoextractthefingerprint’sframework.Themaindesignsareincludefingerprintdistortioncorrectionalgorithm,fingerprintsegmentation,fingerprintbalanced,intelligentenhancementandbinaryandthinning.Fingerprintimagefeatureextractionmoduleismainlyextractedfourcategoriespointswhichend,intersection,centerandtriangulationpoint.Fingerprintimagematchingmoduleisusingoffingerprintfeaturetopologicaldatastructuresformatchingpairs.Thetestverifiedtheabovesystem,scientificandeffective.KeyWordsFingerprintRecognitionIntelligentEnhancementCategoriesPointsMatching本科毕业设计第Ι页共Ⅱ页目录1引言............................................................................................................................12开发工具及其运行环境............................................................................................22.1软件环境.................................................................................................................22.1.1C++的产生和发展以及特点简介.......................................................................22.1.2VisualC++6.0简介及其优点..............................................................................32.2硬件环境.................................................................................................................43需求分析....................................................................................................................53.1业务需求分析.........................................................................................................53.2功能需求分析.........................................................................................................53.3性能需求分析.........................................................................................................63.4本章小结..................................................................................................................64系统总体设计............................................................................................................74.1指纹模式对象的信息量.........................................................................................74.2指纹模式转化方法...............................................................................................104.3指纹模式识别系统算法的组成及流程.................................................................114.4指纹模式识别系统总体算法流程规划...............................................................144.5本章小结................................................................................................................155详细设计..................................................................................................................165.1基于MFC的指纹模式识别系统的框架设计......................................................165.2基于C++的指纹图像预处理算法........................................................................195.2.1指纹图像畸变矫正.............................................................................................195.2.2指纹图像方向场和分割.....................................................................................235.2.3指纹图像均衡.....................................................................................................255.2.4指纹图像去噪.....................................................................................................275.2.5指纹图像的智能化增强.....................................................................................27本科毕业设计第Ι页共Ⅱ页5.2.6指纹图像二值化.................................................................................................29本科毕业设计第Ⅱ页共Ⅱ页5.2.7指纹图像的细化.................................................................................................305.3基于C++的指纹图像特征点提取........................................................................315.3.1指纹特征端点的提取.........................................................................................315.3.2指纹特征交叉点的提取.....................................................................................325.3.3指纹特征中心点和三角点的提取.....................................................................325.4基于C++的指纹图像匹配....................................................................................335.4.1指纹图像的配准.................................................................................................335.4.2指纹图像的匹配.................................................................................................335.5指纹采集仪的制作................................................................................................34结论..............................................................................................................................36致谢..............................................................................................................................37参考文献......................................................................................................................38第1页共38页本科毕业设计1引言在信息化时代,伴随着科学技术的进步和人们生活节奏的加快,传统的身份验证方式以不能满足人们的需求。在这种情况下,新的保密技术和身份鉴别技术的发展变的迫在眉睫。指纹识别技术恰恰能够适应这个环境,满足各个行业对身份鉴别认证的要求。指纹是一种人体生物物理特征,具有唯一性,不存在重样的特点,是独一无二的,即便是双胞胎他们的指纹也存在着千差万别[1]。指纹的这种独特的生物物理特点,为指纹技术发展和应用奠定了基础。指纹的鉴别经历了指纹卡片,人工手写等阶段,但这些方法并不能充分显示指纹所包含的信息,使得这种技术得不到大范围的推广和使用。然而利用现代的信息科技,我们可以把传统的指纹技术转化为数字指纹技术,应用电脑来解决指纹识别问题。因为指纹的独特性及其不可更改,持久可携带的特点,所以指纹识别技术的开发有很重要的意义的,总结几点如下:a)应用于旅馆等必须登记个人信息的行业:国家可以建立总的指纹管理系统,使得旅社在最短的时间内准确快速的识别客人的个人信息,也可以防止犯罪分子投机取巧,存储旅客信息,更好地配合公安机关的检查。b)应用于旅游行业上:游客可以注册成为管理系统的用户,当被审核后,可以在管理系统上预订酒店、机票,可以有效缩短人们的提前准备时间,增加经济流通,提高国民经济总值。也就为游客提供了方便,这种原理对于护照身份管理也是一样应用的。c)应用于基层服务管理,信息汇总上:在社区服务保障及医保服务上,我们可以通过指纹录入来代替身份识别,即可以有效保证人们的生活安全也可以节省一定的工本费用,方便信息的统计汇总,有效地制定解决方案。在银行账户管理方面,银行管理系统可以通过指纹的添加、修改和删除,对注册用户进行管理,确保大额款项的安全流通。总之,通过指纹识别系统,既可以有效地识别人们的身份信息,防止造假,而且对人们生活出行,金融理财都提供了很大的帮助,可以高效率的提高国家的经济流通,提高国民生产总值,这对国家以后的经济发展也是很重要的。第2页共38页本科毕业设计2开发工具及其运行环境本章主要介绍指纹模式识别系统所需要的开发工具及其运行环境,其中运行环境包括软件环境和硬件环境。2.1软件环境指纹模式识别系统的软件环境主要包括两个方面,下面将分别介绍。2.1.1C++的产生和发展以及特点简介C++相对于C语言来说,最大的优点就是可以面向对象,而C语言是面向过程的语言。相对于其它高级语言语言来说,C++比较难学,但是在各个领域中应用广泛,功能强大。面向对象设计相比于面向过程设计是一个很大的突破。类的引入,让C++语言把面向对象的特性表现的淋漓尽致。。C++的设计和演化[2]:C++语言的创造者是BjarneStroustrup,它兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言设施。在1980年C++最早的版本被投入使用,1983年C++语言中又加入了面向对象的功能,使的C++可以涉足面向对象的程序设计领域。1985年,C++正式的投入到了商业市场。在1987至1989年间,支持范型程序设计的语言设施也被加进了C++。正式的C++标准化工作在1990年启动把C++变成标准语言的工作在1990年开始启动。由ANSI和ISO主持C++的标准化工作。终于在1998年C++的第一代标准国际语言开始投放市场。C++的设计目标就是要让C++既具有适合于系统程序设计的C语言所具有的可适应性和高效性,又能在其程序组织结构方面具有像Simula那样的语言设施。C++的设计规则被分为基本规则、基于设计的规则、语言的技术性规则以及基于低层次程序设计的规则四个方面,一下具体说明。基本规则:C++是一门语言,而不是一个完整的系统,每一种语言特性必须有一个有根据的、明确的实现方案。使其适用于真实世界中各种应用的便捷工具的强调;充分考虑程序员的技术和取向(偏好)。第3页共38页本科毕业设计基本设计的规则:支持良好的设计方案;提供用于程序组织的语言设施;心口如一;所有的语言特性必须具有切实有效的承受能力;开启一个有用的特性比避免所有的误用更为重要;能将独立开发的部件组合成完整的软件。提供更易用并具有一定承受能力的设计思想和程序设计技术,进一步提高程序的质量。语言的技术性规则:与静态型别系统(Statictypesystem)没有内在的冲突;像对内建(built-in)型别一样对用户自定义型别提供很好的支持;个异化(locality)行为是可取的;避免产生顺序上的依赖关系;在对语言产生疑惑时,可以选取其特性中最易掌握的部分;可以因为不正当的语法使用而产生问题(Syntaxmatters(ofteninperverseways))削弱对预处理器的使用。基于低层次程序设计的规则:使用传统的(笨拙的)连接器(linker);与C语言不存在无故的不兼容性;不给C++之下层级的更低层语言留出余地(汇编语言除外);为不使用的部分付出代价(零负荷规则);在产生疑惑时,能提供完全自主控制的途径。在C++的设计中只要在不严重影响其对强型别检查(strongtypechecking)的支持的地方,都尽量做到与C的“source-link”方式相兼容。除了某些微小的细节差别之外,C++将C[Kernighan,1978][Kernighan,1988]作为一个子集包含了进来。C++与C的兼容性使得C++程序员立刻就能有一个完整的语言和工具集可用。还有两点也很重要,一是有大量关于C的高质量的教学素材已经存在,二是C++程序员可以利用C++与C的兼容性而直接并有效的使用大量现成的程序库。在决定将C作为C++的基础的时候,C还没有像后来那样出类拔萃、炙手可热,所以在考虑这个问题的时候,与C语言所提供的可适应性和高效性相比,C语言的流行程度只是个次要的考虑因素。然而,与C的兼容性也使得C++在某些语法和语义上保留了C的一些瑕疵之处。比如,C语言的声明语法就实在远不及优美;而其内建型别的隐式转换规则也是混乱无章法的。还有另一个大问题,就是许多从C转向C++的程序员并没有认识到,代码质量上的显著提高只能通过在程序设计风格上的显著改变来达到。2.1.2VisualC++6.0简介及其优点VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台.有些软件就是这个编出来的.另外还有VB,VF.只是使用不同语言第4页共38页本科毕业设计但是vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等[3]。VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为一种”工业标准”,而VC++则是某种操作系统平台下的”厂商标准”而”厂商标准”是在遵循”工业标准”的前提下扩展而来的。VC++应用程序的开发主要有两种模式,一种是WINAPI方式,另一种则是MFC方式,传统的WINAPI开发方式比较繁琐,而MFC则是对WINAPI再次封装,所以MFC相对于WINAPI开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WINAPI的相关内容为主线。要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发展。vc6.0的优点是界面简洁,占用资源少,操作方便。2.2硬件环境本系统开发的硬件环境如下:a)Pentium(R)4CPU2.80GHz以上。b)768MB的内存以上。c)操作系统为Windowsxp。第5页共38页本科毕业设计3需求分析在进行指纹模式识别系统的开之前发,我们必须首先了解与分析用户与市场的需求。在做一个软件之前做需求调研是不可不缺少的,因为我们不能做一个没有实际用户的软件。通过调研,我们就可以知道,我们所做的软件是否实用,并且可以给软件所具有的功能作出导向。因此需求分析是整个设计过程的基础,它可以直接影响到软件的开发速度和质量。。经过现场的调研,本章主要对指纹系统的业务需求、功能需求、性能需求、软件需求进行详细分析。需求分析是整个设计过程的基础,它将直接影响应用程序的开发速度与质量,所以对指纹模式识别系统的需求调研分析必不可少。3.1业务需求分析指纹识别系统在业务上的应用主要是起到一个身份鉴别的作用。身份鉴别就像一把钥匙,也可以理解为权限,只有得到了这把钥匙,我们才能进行接下来的工作。它就犹如一个大门,只允许主人进去,一切陌生人都被拒之门外。传统的身份鉴别作用越来越不能适应当今社会的脚步,而且可应用的范围很小。指纹识别技术在身份鉴别上的应用顺应历史潮流,势不可挡。指纹识别系统可以应用在社会服务管理、医保服务管理、身份护照管理、银行账户管理、智能家居管理等等。把指纹识别系统嵌入在身份验证模块中,只需要本人的指纹轻轻一按,就能快速识别,进入接下来的工作,快捷,安全。在上面的这些行业中迫切需要指纹识别技术的加入让工作变的轻松,简单[4]。3.2功能需求分析通过一系列的调查研究,对应上一节的业务需求分析,本节主要从指纹模式识别系统的几个功能模块指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征比配、特征数据库这几个方面来分析公司的功能需求。a)指纹图像采集:用于捕捉指纹图像。b)指纹图像预处理:预处理过程是整个系统关键的第一步。指纹图像由于第6页共38页本科毕业设计输入设备等原因会发生畸变、不清晰、产生噪音,所以特征提取之前,需要对图像进行预处理。常用的预处理过程一般包括:增强、细化,分割、二值化等。c)指纹特征提取:指纹特征提取根据指纹对象预处理后形成的指纹框架,提取出指纹的特征点,然后把特征点分类,形成特征点拓扑数据结构。特征点整体上分成局部特征点和整体特征点。局部特征点有端点、交叉点,整体特征点有三角点和中心点。d)指纹特征比配:指纹特征比配就是输入的指纹特征与事先保存起来的模板特征进行对比,从而判断这两个指纹图像是否来自同一个手指。使用最普遍的指纹匹配算法是基于细节点的匹配算法e)特征数据库用来存储指纹图像模板。3.3性能需求分析性能需求有以下几个方面:a)自己制作的指纹采集装置,采集图片要清晰。主要是拟采用COMS摄像头和三菱镜,应用光的折射成像原理来捕获指纹图像。应用三菱镜通过光的折射会增加图像采集的精度。b)指纹的信息量很大,要使计算机做到识别速度快,质量高,提高软件的性能,就必须要对信息做出合理化的减少。通过一系列的指纹模式转化可以极大地减少指纹的信息量。从而达到指纹识别的高速,高质。c)软件的指纹比对结果要准确。拟采用数学上的拓扑数据知识,来完成指纹的比对。把指纹的特征点装配成指纹拓扑数据结构,然后利用整体特征点来进行匹配,使其处在一个坐标系下,再利用分支特征点进行精密的比对。达到精确地指纹比对结果。3.4本章小结通过对一些个人的身份管理,银行账户管理,旅馆、社会保障部门进行的需求调研。然后分析需求调研的结果,能过帮助我更好地了解了指纹技术的用途,熟知指纹技术要实现的目的,和如何能够达到合理的人机交互界面设计。对我的指纹识别设计有很好的实际指导作用。能过做到从群众中来,再到群众中的软件才是好软件。第7页共38页本科毕业设计4系统总体设计本章的内容是介绍指纹识别模式系统的总体设计。总体设计就像是一个设计蓝图,和方向标,给我们的工作作出指引。同时总体设计对项目的开发进度和项目的质量有着至关重要的影响。通过上一章对指纹模式识别系统的需求分析,在本章规划一个指纹模式识别系统的总体设计方向。指纹识模式识别系统存在着大量的算法,每个算法之间存在着独立性,把所有的算法按一定的逻辑关系就能实现强大的指纹模式识别系统。本章主要介绍指纹模式识别系统的算法总论,在对开发系统进行全面分析调查的基础上,制定出应用指纹模式识别系统的算法规划,对建立一个该系统来说是必须的,也是全面展开开发工作的重要基础。其中指纹模式识别系统的算法总论分为三个大部分:指纹模式对象的信息量、指纹模式转化方法、指纹模式识别系统算法的组成及流程。4.1指纹模式对象的信息量在起初开始做指纹模式识别系统之前,我很迷茫,不知道到底该如何插手,面对我们自己的真实指纹,既熟悉又陌生。熟悉的是它就是在我们身上,摸得到看得到,陌生的是指纹的特点,我们该如何进行辨别,还有计算机要出入处理,处理什么。后来我在图书馆查阅了很多关于指纹识别的很多书,逐渐的我找到了我的设计方向。设计思维导图如图4.1所示。第8页共38页本科毕业设计图4.1思维导图指纹包含很多信息量,如此众多庞大的信息量正是我们得以实现指纹算法的基础。指纹模式对象的信息量是在物理上可以测量程度的物理量。指纹模式中的信息量有指纹纹路的各种走向、特征点分布情况、纹路区域分布、纹线之间的间隔、纹线分布密度等等可测量信息量的数字集合。换句话说指纹识别我们最终要做的就是比配指纹的信息量,信息量形似度的多少直接影响到比对的结果,同时指纹的信息量比配的多少也就决定了指纹模式识别系统的性能。所以用很少的信息量就可以来描述一个指纹的信息就是我们想要到达的目标。所以指纹信息量的研究是至关重要的。接下来让我们一步一步的剖析指纹模式对象的信息量[5]。a)真实指纹对象的信息量真实指纹对象就是我们自己手指上面的指纹,未经过任何处理的指纹。它就是我们人眼所看到的自然界中的指纹。从物理意义上说,它的可测量程度的物理量是无限的。从下面说明无限的缘由:1.根据三色原理自然界中的所有颜色都是有红、绿蓝组成的。并且每一种颜色都有256中色阶。并且从红到绿,从绿到蓝又有无数第9页共38页本科毕业设计种过渡。2.我们知道自然界中的一切都是由点组成的,但是在自然界中点是没有面积的,所以最小的单位是测量不出来的。所以自然界中的指纹信息量是无限的对于真实的指纹如果不做任何的处理,,面对无限的信息量计算机是无法完成指纹识别的。b)彩色指纹对象的信息量通过指纹采集仪,采集到的未经过灰度处理的,色彩、亮度不同的指纹图像就是彩色指纹对象。对于计算机来说彩色指纹图像就是亮度不同,色彩不同的指纹图像数据信息体。对于它的信息量我们可以这样来计算:我自己买的三菱镜长宽为的像素单位,计算机根据指纹采集仪的分辨率把图像数字化。但是指纹图像的大小不会超过采集器斜面尺寸。所以这样指纹图像的像素收敛为个像素点。我们之前提到过三色定理。每一种颜色有256种色阶,并且个像素点我们可以用2.5来绑定。这样我们就可以得到彩色指纹对像的信息量是:。彩色指纹图像的信息量还是很大,但是对于无限的真实指纹对象来说是个很大的进步。但是计算机处理起来还是不现实,需要我们进一步处理。c)灰度指纹对象的信息量彩色指纹对象具有三种色彩,如果把彩色指纹对像转化为只有单一色彩的灰色图像其信息量一定会大大减少。由于灰度图像只有单一的色彩,在灰度上有256种明暗亮度变化。所以灰度图像的信息量是:。此时信息量减少为原来的三分之一。此刻计算机应该是可以处理了,但是速度会很慢就失去了用计算机处理的意义。我们必须进一步减少信息量。d)指纹对象模式信息量指纹对象就是只有指纹的部分,图片不包含出指纹图像的其它部分,也可以理解为把一张指纹对象图像里面的指纹部分扣出来,除去背景部分。这样做一第10页共38页本科毕业设计下图像的信息量一定会比少,至于少多少,我们不知道,但是它一定会减少。e)指纹纹理模式对像的信息量指纹的纹理模式是只有黑白两种颜色的指纹图像对象,灰度图像中的灰度具有256种灰度明亮的色阶,而指纹纹理图像对象就只有黑和白两种色阶。所以把指纹图像转化成指纹纹理图像对象后,指纹的信息量就变成了,我们可以看出,此刻的信息量与彩色指纹对象模式的信息量相比已经小了很多。此是的指纹图像应经很接近我们最终要得到的指纹对象了。但是为了加快计算机运算速度我们还需要做进一步的处理。f)指纹纹理特征模式对象的信息量在数学上我们知道几个点和确定一条线(两个点确定一条直线),指纹图像是有几条线组成的,我们可以设个点确定一条线,一个指纹图像有条线,则指纹对象信息量为,次刻的信息量一定比小。其实依据数学上的拓扑学我们还可以进一步精简指纹对象的信息量。g)指纹特征对象的信息量从上面的指纹纹理特征对像我们可以知道指纹的特征可证可以由点和线确定,其实经过大量的实验证明,用两个特征点(如端点、交叉点)每种点12个为一组,经过比对就可以完成指纹对象的识别。此刻用一组特征点来描述指纹的成为指纹特征对象,它的信息量为,这是的信息量就很小了,用计算机来处理此刻的信息量速度就很快了,足以达到工程上的要求。总结:通过上面对信息量的分析我们可以知道我们最终要得到的指纹对象就是指纹特征对象。指纹对像从最初的:真实指纹对像—彩色指纹对像—灰度指纹对象—指纹对象模式—指纹纹理对象—指纹纹理特征对象—指纹特征对像,七个信息量的变化。我们所做的算法也正是围着这七个模式转化而设计的。通过分析指纹信息量可以给我们指明做一个指纹模式识别系统该怎么做,和为什么这么做。第11页共38页本科毕业设计4.2指纹模式转化方法通过上面一节我们可以知道,做好指纹模式识别系统的关键在于减小指纹对象的信息量。上面一节也给出了,指纹对象模式转化的七个模式。上面一节给我们指明了设计方向,这一节我们主要介绍一下如何实现这些转换。这一节主要包括六个转化。a)真实指纹对象转化为彩色指纹对像,该转化主要是用指纹图像采集仪根据采集仪固有的分辨率对指纹图像进行数字化指纹采集。通过采集完成真实指纹对象到彩色指纹对象的转化。b)彩色指纹对像转化为灰度指纹对象,该转化过程根据颜色的三色定理和灰度转化公式:。通过逐点转化就可以把彩色图像转化为灰度图像。其中是红色,是绿色,是蓝色。c)灰度指纹对象转化为指纹对象模式,该转化过程主要是依据场来实现的,背景对象像素的分形维数和指纹对象的分形维数是不一样的。(分形维数是数学上一种新的世界观和方法论)。根据分析维数的分析就可以把图像的背景和指纹对象分离开,得到指纹对象模式。d)指纹对像模式转化为指纹纹理对像,该转化过程主要是应用一个新的技术,智能化处理。我们知道我们的眼睛有一种自动的只能处理功能,就是如我让我们看远处的东西,如果我们事先不知道它是什么我们会觉得很模糊,假如事先有人告诉你它是什么,这样看起来我们会觉得它比较清晰,这就是我们眼睛智能化增强的过程。在此处我们也用相同的手段指纹智能化增强,让脊变的很黑让谷变的很白。形成指纹纹理模式。e)指纹纹理对象准化为指纹纹理特征对象,该过程是数字指纹学通过一系列的数学运算和传统的指纹知识,对智能化图像的端点、交叉点、中心点、三角点等特征点进行标识,从而通过这些标识我们就可以确定指纹纹路的各种走向、特征点分布情况、纹路区域分布、纹线之间的间隔、纹线分布密度等等。完成指纹纹理对象到指纹纹理特征对象的的转换。f)指纹纹理特征对像到指纹特征对象的转化,该转化过程主要是运用数学上的拓扑知识,对上面指纹纹理特征找出的特征点进行分支划分,并且按照拓第12页共38页本科毕业设计扑结构,以中心点、三角点或者方向场等特征点为主干,其它特征点为分支,进行指纹总体特征拓扑结构的组装,形成一个树形的拓扑结构,从而完成指纹纹理特征到指纹特征对象的转化,实现最后的转化。下面给出这七种指纹对象的转换图,如图4.2所示。图4.2指纹对象模式转换图总结:这一节给了我们如何实现转化的方法,上面一节告诉了我们实现什么样的转化。前一节就像是地基给我们铺垫好了一切,这一节就像是高楼的框架初步的外形已经实现,接下来的一节就是装修,告诉我具体的细节设计。4.3指纹模式识别系统算法的组成及流程在这一节中,我们将介绍指纹识别系统的算法。经过上面两节的介绍,我们已经知道了对于指纹模式识别系统我们该做什么和怎么做的问题,现在我们要做的是介绍算法的具体流程规划。指纹模式识别系统的算法组成由两部分,一部分是离线的,一部分是在线的。离线的部分有:指纹对象采集—指纹对象预处理—指纹对象特征提取—指纹图像匹配。在线部分有:指纹图像采集—指纹图像预处理—指纹图像特征提取—指纹图像模板与指纹模板匹配,如图4.3所示真实指纹对象彩色指纹对象灰度指纹对象指纹对象模式指纹纹理/特征对象指纹特征对象指纹图像采集指纹图像预处理图像特征提取指纹图像匹配指纹模板第13页共38页本科毕业设计图4.3指纹算法流程图从上面的指纹模式识别系统的算法组成部分我们可以得出主要的算法模块主要有:指纹图像采集,指纹图像预处理,指纹图像特征提取,指纹图像匹配,这四大模块。指纹识别算法的精髓和要点也就是这四大模块。指纹识别算法,算法众多,我们必须要把算法分成模块,然后有机的把四大算法模块联系组装起来,才能有序的完成指纹模式识别系统的所有算法。下面介绍一下各算法模块的功能和算法流程规划a)指纹图像采集:拟采用CMOS摄像头和三菱镜通过光的折射原理来制作指纹图像,获得合格的指纹对像数字信息矩阵。COMS摄像头像素为800W像素,三菱镜为等腰直角三菱镜。模块算法流程如图4.4所示NYY图4.4指纹对象采集图b)指纹图像预处理:预处理过程是整个系统关键的第一步。在该模块,我用到了方向场、频率场、小波分析、灰度直方图、高斯函数、等知识。指纹图像预处理主要作用有指纹图像真实化处理,指纹图像智能化处理,指纹图像细化骨架提取,算法流程如图4.5所示差影域值判断自制指纹采集器采集指纹进入指纹预处理模块差影算法处理畸变矫正处理二值化智能化处理细化分割均衡,平滑第14页共38页本科毕业设计图4.5指纹预处理图c)指纹特征提取:经过指纹图像预处理以后,拟根据数学上的拓扑学知识逐条提取纹线的端点,交叉点,中心点,三角点等特征点。端点、交叉点是局部特征点,中心点和三角点是整体特征点。然后以整体特征点为主干,局部特征点为分支,把所有的特征点装配成拓扑数据结构,算法流程图如图4.6所示图4.6指纹特征提取图d)指纹特征比配:在该模块用上面的形成的拓扑结构,依据中心点或者三角点或方向场的整体特征点为中心进行指纹特征点匹配,目的是使其处在同一个坐标下。然后在比对分支特征点,根据比对的相似度得出结果,算法流程如图4.7所示。YNYN有无方向场点指纹特征拓扑结构进行拓扑数据结构匹进行方向场点配准进行三角点配准进行中心点配准有无中心点有无三角点装配成拓扑结构进入指纹匹配模式特征点提取第15页共38页本科毕业设计Y图4.7指纹对象比配图4.4指纹模式识别系统总体算法流程规划上面已经比较详细的介绍了各个功能模块的算法流程规划。一个完整的指纹模式识别系统是这个几个模块的有机结合,把握好各个模块之间的逻辑关系,最后能过有机的整合到一起。同时分模块的好处是不仅可以实现代码独立,并且可以灵活的移植代码,实现了代码的多重利用,同时还能减小报错,提高开发速度。下面给出了各个功能模块之间的联系图,也就是总体算法流程图,如图4.8所示。图4.8算法总流程图4.5本章小结通过对本章的介绍,我们对指纹模式识别系统的整体设计有了整体上的了解。知道了该项目的总体设计流程。解决了指纹模式识别系统该做什么,为什么这么做,和怎么做的问题。在本章我们首先通过一个思维导图,告诉我们指纹模式识别系统该做什么的问题,进而引入指纹对象模式。我们要做的就是实现指纹对像模式的转换。接下来我们通过分析指纹的信息量,让我们知道我们为什么要转换指纹对象模式。并且了解到转换的最终的目的就是尽可能大的减小计算机最终处理的信息量(但是这些信息量还能过足以科学合理的描述一个指纹),实现计算机高速高效处理指纹识别的目的。再后来,我们又具体的说明了系统各个模块的算法流程同时给出了算法流程图和逻辑关系,指导我们该如何做。通过本章,我们足以掌握设计一个指纹模式识别系统的三个大问题:做什么,为什么指纹图像匹配指纹图像预处理指纹图像特征提取指纹图像采集第16页共38页本科毕业设计这么做,和怎么做的问题。很好的解决了这三个问题,我么足以设计出一个让我们满意的指纹模式识别系统。5详细设计本章的主要内容是介绍指纹模式识别系统的详细设计。内容介绍主要包括MFC界面的设计和基于C++语言指纹算法的设计,主要算法分为三大部分为指纹图像预处理、指纹图像特征点提取、指纹图像匹配。其中指纹图像预处理、指纹图像特征提取、指纹图像匹配这三个大的算法,包含很多分支算法,每一部分都是由很多分支算法组合而成的。接下来我将比较详细系统的介绍一下指纹模式识别系统的详细设计。5.1基于MFC的指纹模式识别系统的框架设计之前我是没有接触过MFC的,我也做过一些界面设计,但是基于C#的一些非常简单的界面设计,只要一拖拉控件,就可以形成了。以前听说C++的界面的设计比较难,具体怎么样,我之前也不知道。做指纹模式识别系统我选用了第17页共38页本科毕业设计C++语言,因为C++语言本身具备一些其它语言不可能具备的优点,因为C++语言更接触底层,所以C++语言有比其它语言处理问题速度更快的优点,这一点上,其它语言是望尘莫及的。由于指纹模式识别系统涉及到很多的算法,为了能满足其快速,高效的性能需求只有用C++语言才恩能够胜任。下面说一下如何用MFC搭建指纹模式识别系统的框架。其实用MFC搭建系统的框架还是很简单的。在我的设计中主要有三个界面。下面先简单介绍一下MFC界面是如何设计的。首先我们需要打开VC++6.0然后选择新建—MFCAppWizard[exe]—ok—Dialogbased—Finsh—ok。如图这样一个简单的界面就完成了,如图5.1所示。图5.1界面这是一个空白的简单界面没有任何控件,这当然是不能算是一个框架了,下面我来简单的说明下一如何加入一个简单的控件。控件如图5.2所示图5.2控件图用鼠标把右图中的button控件直接拖入到图5.1中。然后右击控件,选择Properties,我们就可以在里面设置控件的ID和Caption。控件的ID就像是指针一样,唯一确定一个控件。Caption是控件的名字栏,我们可以在里面修改控件的名字,这样我们就在界面中加入了一个控件。接下来我们双击控件,点击ok就可以在控件对应的部分输入控件的控制语句了,在代码输入的上面还有很多自动生成的代码,这部分是我们不用修改的,这是系统设定的,这样来看MFC第18页共38页本科毕业设计界面设计还是很好的。然后我们在输入语句部分输入AfxMessage(“BoxHelloworld”),这样一个简单但是很经典的MFC框架程序就完成了,效果图如图5.3所示图5.3效果图通过上面的介绍我已经详细的说明了如何制作MFC框架和MFC程序了。指纹模式识别系统程序所需要的三个框架就是这样设计的,只不过控件的数量比较多,算法比较复杂,但是在我的设计中基本上就是反复用上面的框架和控件设计过程。下面给出我设计的三个框架界面图。其中主界面图如图5.4所示,离线对比界面如图5.5所示,在线认证界面如图5.6所示。第19页共38页本科毕业设计图5.4主界面图5.5离线比对界面第20页共38页本科毕业设计图5.6在线认证界面在上面的三个图中图5.4是指纹模式识别系统的主要界面,图5.5和图5.6是指纹模式识别系统的两个分界面。起初我在设计在界面布局是没有什么问题,但是界面的跳转让我犯了难,我之间对于多界面程序设计接触的少,不知道该如何跳转,后来查阅资料这个问题终于解决了,也许对于高手来说,这个问题不足以称之为问题。其实界面之间的跳转就是仅仅需要简单的几条语句下面我给从主界面跳转到离线比对界面的语句:voidCMyFPSysDlg::OnButtonOffline(){//TODO:AddyourcontrolnotificationhandlercodehereOfflineMatchom;om.DoModal();}我们可以看出就是好仅仅的两条语句结束了上面的问题。一次类比,各个界面的跳转,对于我来说都不成问题了[6]。第21页共38页本科毕业设计总结:对于MFC的框架设计还是比较容易完后的,最主要的就是在设计前首规划好布局,知道自己到底要设计几个界面,各个界面之间的联系是怎么样的,俗话说磨刀是不误砍柴工的。起初我在设计的时候,由于没有把握好布局,搞得重新反工了好几次。5.2基于C++的指纹图像预处理算法指纹图像的预处理算法包括指纹真实化处理算法、指纹智能增强算法、细化处理算法。其中指纹真实化处理算法包括指纹图像畸变矫正算法、指纹图现场算法、分割算法、指纹图像均衡算法、指纹图像收敛算法、指纹图像平滑算法。细化处理算法包括二值化算法,细化算法。下面我将比较详细的一一介绍这些算法。5.2.1指纹图像畸变矫正不管采取什么样的指纹采集设备,由于设备本身和外界的一些噪音影响,图像都会发生或多或少的畸变。即使是很高级的单反相机,在它的内部也装有图像畸变矫正功能[7]。对于我自己用三菱镜和CMOS摄像头制作的简单的指纹采集装置,采集到的指纹图像一定会发生图像畸变。经过简单的图像采集我发现,由于等腰直角三菱镜的采集面是斜面和光的折射成像原理,指纹图像会发生上面的指纹纹线密,下面的指纹图像疏的畸变,同时指纹图像的亮度也会不均匀。下面用一个图来说明三菱镜采集畸变的数学建模,如图5.7所示。第22页共38页本科毕业设计图5.7畸变模型图从上面的图我们可以看出当三菱镜上面的三个点A、B、C通过光的折射到成像面后,它们不在是等间距,而且也不再一个平面上。里成像面越近的点越亮,远之则比较暗。所以通过三菱镜采集图片会发生上面所说的畸变。接下来我查阅了多方面的资料,最终找到了如何来矫正的办法,我在此次用数学建模来解决此问题。首先我们建立数学模型,用来解决Y方向上和X方向上的畸变。Y方向的畸变如图5.8所示,X方向的畸变如图5.9所示。图5.8矫正模型一图第23页共38页本科毕业设计图5.9矫正模型二图我们要找的就是上图中的和之间的关系,从上图中我们可以知道的纵坐标是,而的纵坐标是,从图我还发现和与、这三条光路有关。然后我把这三条光路直线的式子列出来,就可以找到和的关系了。下面列出这三个式子:直线:直线:直线:然后联立这三个式子就可以得出:第24页共38页本科毕业设计第25页共38页本科毕业设计在上面的式子中,,,,焦距7.5fmm\uf03d.这几个量都是可以测量的。同时也是我用三菱镜CMOS摄像头制作指纹采集器的参数。上面数据的单位都是毫米,但是图像上面的单位是像素,所以在我还需要做像素的转换。我是这样设计像素转换的。首先一张已经矫正好的图像上面的某一个点是,它的纵坐标是单位是像素。三菱镜上面与之对应的点是,它的纵坐标是单位是毫米。然后有:即在上面的式子中是校正后图像的高,矫正后的图像中心点纵坐标。接下来我还需要进一步的转换,是真实像中对应上面的点,是其纵坐标单位是毫米,对应到畸变图像上的点是,其纵坐标是单位是像素,存在下面的转换:,即,有。在上面的式子中是畸变梯形的高度,近似等于畸变图像的高度,、是的上下界,。在轴方向的矫正我是这样来做的,畸变图像里面的一条线,它的纵坐标是,与之对应的矫正好的图像里的线是,纵坐标是。我用下面的式第26页共38页本科毕业设计子把畸变的矫正成:。上面的式子中,是畸变图像的宽度,是校正好后的图像宽度,。长度和像素的转:得出:。通过上面的方法我就实现了指纹图像的几何上面的矫正。对于灰度矫正的算法我采用的是函数拟合函数卷积的连续三次差值实现,三次卷积的操:。通过上面的方法我完成了指纹图像的畸变矫正,下面给出畸变矫正函数的流程图,如图5.10所示。图5.10畸变矫正函数流程图其中、、是畸变梯形的四个定位点。5.2.2指纹图像方向场和分割根据我上面思维导图的设想,在指纹识别前我必须要把图像与背景分割。通过图像灰度直方图和指纹对象与背景图形的不一样,我是用图像的强度场和梯度场来达到分割目的[8]。下面介绍一下我所理解的图像场,我认为图像场主要有四个场,分别是强度场:因为我用到的是三菱镜折射成像原理,所以这里的强度场主要是光子在图像上面的分布情况。梯度场:这个主要是指指纹纹线脊和谷的隆起。方向场:这里主要是指指纹纹线的走向,中线点,纹线的直向走向趋势,总之就是纹线的输入P0’、P1’、P2’、P3’矫正Y方向的畸变矫正X方向的畸变3c次插值矫正灰度第27页共38页本科毕业设计走向和趋势。频率场:在这里用到的主要是指纹线间隔[9]。对于一个的灰度图像,它的各个场的数学模型我是这样来做的。强度场的数学模型:强度场为,指灰度大小。梯度场的数学模型:对于梯度场就是求的偏导得到梯度向量。设是的,是的。然后就有,。然后就有梯度场的大小就为:。方向场的数学模型:比较理想的方向场模型是,。求出方向场大小为:。方向场正交分解图如图5.11所示图5.11方向场的正交分解图第28页共38页本科毕业设计频率场的数学模型:我先定义为的平率,也就是单位长度上纹线的条数,然我我在定义是在区间内灰度在垂直方向上变化的总量。然后通过下面的两个公式:和。然就可以求出指纹图像的频率场是:。通过上面的数学模型我们就解决了图像场的算法数学模型。把场做出来我就可以利用强度场和方向场来分割指纹对象了。背景和指纹对象的亮度不用纹路也不同,也就是他们的强度场和梯度场不一样。对于强度方面的差距我们可以通过指纹图像的直方图来体现如下图所示。从图中我们可以看出下箭头左边是背景直方图,右边是指纹对象直方图,阈值对应于下图箭头指的位置,由于阈值的小变化只会导致面积很小的变化,所以呢阈值的选择上面的误差对面积的影响很小。第29页共38页本科毕业设计图5.12灰度直方图接下来利用梯度场来解决分割问题,背景和指纹对象的梯度值不一样,指纹对象的梯度值比较大,在这里我用分形维数分割图像的方法[10]。分形维数就是微小的相同的结构可以组合成自然中很大的物质结构。同样自然物质结构不同同样可以用相同的微小形同结构不同数量上的差别来区分。然后我设为图像的函数,为某位置的梯度,则有。设使分割阈值,当,则该点在指纹背景上。当指纹对象上。通过上面的方法我完成了分割。方向场的函数为:voidgetOrientMap(unsignedcharg_lpTem,unsignedcharg_lpOrient,intIMGW,intIMGH,longr)其中g_lpTemp是图像的指针,g_lpOrient是方向场的指针,r是模板窗口的半径。分割的函数为:第30页共38页本科毕业设计Intsegment(BYTEg_lpDivide,BYTEg_lpTemp,intr,intthreshold,intIMGW,intIMGH)g_lpDivide是梯度场的指针和方向场幅度值的指针,threshold是分割的阈值。g_lpTemp是运算缓冲区的指针。图像场和分割图如图5.13所示。第31页共38页本科毕业设计图5.13指纹原图(左),指纹方向场图(中),指纹分割图(右)图5.2.3指纹图像均衡“均衡”是专门用来处理图像的名词,均衡的目的是让像素点分度均衡,增加图像的明暗对比和清晰度。对于通过三菱镜利用光的这的折射捕捉到的图像比较暗,但是由于反射成像,保存了真实指纹的大部分信息。通过均衡处理后可以清晰地展现指纹纹落。用于指纹图像均衡的方法主要是有两种灰度拉直和直方图修正,我采用的是直方图修正的方法[11]。直方图在上面用于分割的时候我应经用过了,但是没有细说,在这里简单说明一下,灰度直方图就是各个灰度级像素出现频率的图像,没有经过均衡的图像大部分像素的灰度级处在之间,使图像对比度不清晰。灰度均衡的直方图就是各个数值之间的像素数基本均匀一致,而不会像素点出现“扎堆”的现象。根据概率上的知识均衡的直方图满足概率密度为一即:为一,其中是概率密度,是灰度级,是直方图,第32页共38页本科毕业设计是指纹图像的面积。对于灰度均衡的数学建模是这样的,我设是转换前的概率密度,是转换后的概率密度。灰度级的转换函数是:这是很重要的,灰度转换要求的就是这个转换。接下来根据概率学上面的知识我可以得出,由于均衡的直方图概率密度为一,所以有,对等式的两端求积分我们就可以到的灰度级转换公式:。然后我可以得出灰度的转换公式为:。用文字表述灰度均衡转换就是计算图像的灰度级,求出该灰度级的像素数量,然后除以面积,转化成新的灰度级,获得均衡的灰度分布。均衡的函数为voidequalize(BYTElpDIBBits,BYTElpDataOut,intlWidth,intlHeight)lpDIBBits是指向原DIB图像的指针,lpDataOut是输出图像的指针。指纹均衡后的图像如图5.14所示第33页共38页本科毕业设计第34页共38页本科毕业设计图5.14均衡前(左),均衡后(右)图5.2.4指纹图像去噪由于我做的指纹采集装置,是利用三菱镜通过光的折射原理来捕捉图片的,比较简陋,所以容易被其它的光源和空气中的污染物,三菱镜上面的污点影响指纹图像的采集,在指纹图像上产生噪声点。对于这些噪声点主要的就是外界光源造成的噪声点。对于消除噪声点的方法我采用的是数学知识是卷积,更确切的说卷积是信号与系统上面的主要的知识。通过把该噪声点与其周围的一个指纹像素模板进行卷积就可以解决噪声点问题[12]。数学模型是:指纹图像为它的大小为。指纹模板为它的大小为。是模板的中心与指纹图像对应然后进行卷积运算:我一般用到的模板和模板。模板为去噪的函数为:voidsmooth(BYTElpInBuffer,BYTElpOutBuffer,intrintd)其中lpInBuffer是平滑前的图像数据的缓冲区,lpOutBuffer是平滑处理后的图像的数据缓冲区。r是平滑滤波器的半径,d是平滑滤波器的步长。去做后图像如图5.15所示。第35页共38页本科毕业设计图5.15去噪前(左),去噪后(右)图上面这些方法就实现了指纹图像的真实化处理。第36页共38页本科毕业设计5.2.5指纹图像的智能化增强通过三菱镜采集到的指纹总是有些缺陷,指纹纹路会出现断裂,纹线的脊和谷的间隔模糊。通过智能化增强处理可以很好的解决这些问题。图片处理经过很多年的发展,图片的各种处理方法业已成熟,而且还很多。我设计的智能化增强用到的是各个方法中效果比较好的一种。我用到频率场和方向场,还有小波。小波[13]是一种很好的智能收敛和智能增强的工具、它是由高斯函数和三角函数形成的周期震荡函数。它的一维表达式为:它的二维表达式为:在上面的式子中高斯分量为:,的含义是宽度比例因子,物理意义是波的频率。是高斯扩撒因子,在数学上面就是标准差。是坐标轴的比例因子,数学上面可以理解为椭圆的长短轴之比。对图像中的每一点进行函数运算就可以,就可以实现智能增强的结果。但是我在计算中发现直接运用函数运算时,用的时间是很巨大的,与我的初衷相悖。后来我发现我要做的只是方向场和频率场的加强,所以把矩形模板化为两条相交线段模板后运算量变小[14]。下面是我简化后的模板。切向滤波模板:法向滤波模板:通过这两个模板和方向场和频率场就可以很好的实现智能化处理了。智能化处理的函数:voidorientEnhance(BYTEg_lpOrient,BYTEg_lpOrgFinger)其中g_lpOrient是方向场的指针,g_lpOrgFinger是图像的指针。智能化后的图像如图5.16所示。第37页共38页本科毕业设计图5.16智能增强前(左),智能增强后(右)图第38页共38页本科毕业设计5.2.6指纹图像二值化我做上面的所有工作就是为提取指纹图像骨架打下基础。也就是把指纹图像转换成指纹纹理对象。接下来我要做的就是把灰度指纹图像转化成只有黑白两种颜色的图像。使脊变的更黑,是谷变的更白,整幅图只有黑的脊和白的谷。当然计算机是无法识别指纹的脊和指纹的谷的,但是经过大量的实践证明使用二值化技术是最好的把灰度图像转化成黑白图的方法。我设计中我采用的是智能二值化领域分析法[15]。对于指纹纹线上的黑点来说沿着其纹线方向上的附近的小范围内都是黑点,它们的灰度值之和是比较小的。沿其垂直方向上的都是白点,它们的灰度值之和是比较大的,反正亦然。我就用这个方法来判断该点是黑点还是白点,也就是是脊上的点还是谷上的点。如果切向德灰度小于垂直方向的灰度和就是黑点,反之就是白点。由上面的分析我可以得出智能二值化分析的数学模型令是指纹图像的一点,它的方向场为,是一个小的范围,有:切向灰度值和为法向灰度值和为如果则该点为黑点,在脊线上。反之为白点,为谷上。但是实上总会有一些误差,我要把误差考虑进去,所以在求灰度和的时候,我需要对每一个点设定一个权值,采用加权取平均值的方法来减小误差。纹线方向七点的权值为:。纹线法方向的七点权值为:。二值化的函数为:binary(BYTEg_lpOrgFinger,BYTEg_lpTemp,BYTEg_lpOrient,int第39页共38页本科毕业设计IMGW,intIMGH)其中lpOrgFinger是图像的指针,IMGW是图像宽度,IMGH是图像高度。第40页共38页本科毕业设计图5.17二值化前(左),二值化后(右)图5.2.7指纹图像的细化经过二值化后的指纹图像已经实现了指纹图像的框架提取,但是还是不理想。因为脊的宽度不是一个像素点,是好几个像素点,这明显不能的。我要做的处理就是通过细化,把脊的宽度细化成一个像素点。细化算法历史悠久,有很多细化的方法,我采用的是查表法。如图所示点是边缘点,要去掉点周围的黑色以实现细化。然而点周围的点的排序有256种。但是人们已经归纳出了一张表,在表里面人们用一个来表示一种颜色。用表示黑,用表示白,通过查表就可得知点周围的颜色排序。近而就可以细化图像了。细化表如图5.18所示图5.18细化查表法图细化函数为:intimageThin(BYTElpBits,BYTEg_lpTemp,intWidth,intHeight)其中lpBits是图像的指针,g_lpTemp指纹图像细化运算的指针。细化后的图像如图5.19所示。第41页共38页本科毕业设计图5.19细化前(左),细化后(右)图小结:通过上面的处理已经完成了图像的预处理,实现了图像的真实化处理,智能增强和细化处理。指纹图像的骨架已经做好了。下面我就开始提取指纹第42页共38页本科毕业设计的特征点了。5.3基于C++的指纹图像特征点提取指纹图像的特征点有很多,我能力有限,我只提取指纹图像具有代表性的几类特征点,它们是,中心点,三角点,端点,交叉点。我认为这四类点足以能够代表指纹图像的特征,通过这四类点也足以能过识别不同的指纹图像。其中端点和交叉点是局部特征点,中心点和三角点是整体特征特点。提取完后依据各类点就可以完成各类点的拓扑结结构了。指纹图形的比对最终是通过指纹特征点拓扑结构来比对的。5.3.1指纹特征端点的提取点就是指纹特征的端点,可以看出端点四周的八个点的分布有比较明显的特点,就是除去点以外,它周围的八个点,所有相邻的两个点的灰度值差的绝对值和为。我就是用这个方法来判断是不是端点的。该方法简单有效端点如图5.20所示。提取端点函数为:boolIsEnd(BYTElpNow)其中lpNow是像素指针。图5.20端点特征点图5,3,2指纹特征交叉点的提取如右图所示,点就是指纹特征的交叉点,可以看出交叉点的八个点的分布有比较明显的特点,就是除去的点以外的八个点,所有相邻的每两点的灰度值差的绝对值和为。我就是用这个方法来判断某点是不是交叉点的。该第43页共38页本科毕业设计方法快速有效。交叉点如图5.21所示。提取交叉点函数为:boolIsFork(BYTElpNow)其中lpNow是像素指针。图5.21交叉点特征点图5.3.3指纹特征中心点和三角点的提取中心点和三角点是整体的指纹特征点,用来坐标系定位。提取中心点和三角点的依据就是如果这个点是中心点或三角点,它们周围的方向场会剧烈的变化。依据这个特点,我用公式来提取这类点。在数字图像中,的索引值是一条比曲线上方向场差值的和。中心点的索引值是,三角点的索引值是。设计一个闭曲线的表格,计算中心的索引值。如表5.1所示表5.1比曲线方格表在上面的方格里中以为中心的逆时针闭合曲线的第44页共38页本科毕业设计值为:。以闭合曲线的值为。为了消除,只有上面的两个值都等于或时才是中心点或者三角点。小结:上面完成了指纹特征点的提取,提取了端点、交叉点、中心点、三角点这四类点特征点。用这四类特征点足以能够高速有效地完成指纹识别。提取中心点和三角点的函数为:IntgetSingular(BYTElpOrient,intWidth,intHeight,intlpNum,PPOINTlpArr,charflag)其中lpNum是点的个数,lpArr是点的存储数组。5.4基于C++的指纹图像匹配做好上面的工作,接下来我就开始进行指纹匹配的工作了。指纹图像的比配就是指纹图像的拓扑结构的比对。既然是拓扑结构的比对,那么比对时两个拓扑结构就必须要在一个坐标系下。5.4.1指纹图像的配准指纹图形的配准的目的就是让两个拓扑结构处在同一个坐标下。有很多配准的算法。我用的配准算法是特殊点法。这里指的特征点就是在上一节中提取到的整体特征点:中心点和三角点。如果输入的图形和模板的图形都有中心点或者三角点,就距离它们最近的一个点,有中心点或三角点与这个点形成极轴。由此可以算出两幅图的平移量和旋转量。配准函数为:voidalign(FEATURETRlpFeature,FEATUREPTRlpAlignedFeature,MINUTIAPTRlpFeatuerCORE,sint32rotation,sint32transx,sint32transy)其中lpFeature表示需要变换的指纹特征,lpFeatureCore表示旋转变换的指纹的中心点特征,5.4.2指纹图像的匹配对于图像匹配我采用的是指纹拓扑结构复向量的比对算法。再配以一些简单的三角法等简单高速但是正确率低的方法。第45页共38页本科毕业设计对于指纹的拓扑结构,首先找到两个拓扑结构对应的点,例如对应点,点对应点。用复向量,与之对应的,对应于。如果对应每一组复向量都有,其中。即只发生长度大小和角度旋转的变化,视为相同的复向量也就是拓扑结构一样。由于误差的原来,有百分之六十的相似,就视为相同的拓扑结构。匹配的函数为:voidpatternMatch(FEATUREPTRlpFeature,FEATUREPTRlpTemlate,PMATCHRESULTlpMatchResult,VF_FLAGmatchMode)其中lpFertura是需要对比的指纹特征的数据指针,lpTemplate表示模板指纹特征数据的指针,lpMatchResult比对结果数据指针,matchMode是比对模板。匹配的结果如图5.21所示。第46页共38页本科毕业设计图5.21指纹匹配结构图总结:到此为止指纹识别算法都写完了,经过试验验证算法科学合理,能过达到预期的结果。5.5指纹采集仪的制作在这一节中,我来简单的说一下,指纹采集仪的制作过程。首先需要的材料有:等腰直角三菱镜和CMOS摄像头,纸片和胶水,LED灯,有机塑料玻璃。首先用纸片把采集仪的框架做出来。然后用LED灯做光源,用有机塑料玻璃拖住三菱镜。具体的结构图如下所示。第47页共38页本科毕业设计图5.22指纹采集仪结构图总结:这个装置虽然设计简单,费用低廉,但是效果还是挺不错的。第48页共38页本科毕业设计结论为了改善传统的身份验证方式的不足,使身份验证变的快捷方便,设计了一个指纹模式识别系统。指纹模式识别系统是基于C++,以VisualC++6.0作为开发工具设计完成的。系统的主要模块有指纹采集模块、指纹预处理模块、指纹特征提取模块、指纹匹配模块。指纹预处理模块主要完成指纹的真实化处理、智能增强、二值化的工作。提取的特征点主要是端点、交叉点、中心点和三角点这四类点。匹配主要是指纹特征点的拓扑数据结构来进行比对的。但是有些功能模块无法实现,且系统的前台设计还不够美观,在系统的安全性以及性能上还有一些不足。因此,在今后的学习中,我还将会对这方面的知识进行深入的学习和研究。第49页共38页本科毕业设计致谢三个多月的毕业设计就要结束了,这是我大学学习中忙碌而充实的时光。在此毕业论文完成之际,首先要感谢的是那些曾经帮助过和关怀过我的老师和同学们。本毕业设计论文是在周万珍老师的精心指引与教导下完成的,对论文的总体方案及细节周老师都提出了具体要求,并督促我按计划完成各个阶段的任务。他在论文的选题、研究思路的确定、资料的收集到论文的撰写、修改以及最后的定稿这一过程中,都对我严格要求,悉心指导,并给予了切实的建议,让我受益匪浅。他渊博的知识、严谨的治学态度、精益求精的工作态度、诲人不倦的师者风范给我留下了深刻的印象。在此,请允许我对您说一声:“老师,您太辛苦了!”。此外,我还要感谢在大学期间所有传授过我知识的老师,在这四年的本科学习期间里,正是他们辛勤的教诲,才为我最终完成毕业论文打下基础。还有同学们对我的支持和鼓励,在毕业设计的过程中,他们给我很多帮助,为我解决了很多难题。在此,致以诚挚的谢意!再次向曾给予我帮助的老师和同学们表示最诚挚的谢意!谢谢你们无私的帮助!第50页共38页本科毕业设计参考文献1德)罗伯特·海因德尔.世界指纹史.第一版.北京:公安大学出版社,20082本贾尼·斯特劳斯特卢.C++语言的设计与演化.第一版.北京:科学出版社,20123闫常友,跟我学VisualC++6.0.第一版.北京:清华大学出版社,20104于鑫.指纹识别技术的应用和发展[J].信息技术应用研究,2011,(1):29-305谢立锋,陈灵枭.浅谈指纹识别基本原理.第一版.北京:清华大学出版社,20086佩措尔德.Window程序设计.第五版.北京:清华大学出版社,20107杜慧英,苏建.基于图像畸变矫正的摄像机标定方法[J].吉林大学学报,2007,37(2):434-4378RathaNKChenSWainAK.AdaptiveFloworientationBsedFeatureExtractioninFingerpfintlmages[J].PattemRecognition,1995,28(11):1657-16729郭文鹃,杨公平,董晋利.指纹图像分割方法综述[J].山东大学学报,2010.45(7):94-10010高月红.灰度图像分割算法的研究[J].科技信息,2009年27期:17-1811向锐,贾志辉.基于局部直方图均衡化的指纹方向图算法[J].兰州理工大学学报,2008,(4):115-11712GerbrandsJJ,SegmengtationofNoisyImages[D],DelftUniversityofTechnology,198813HansG.FeichtingerThomasStrohmer.GaborAnalysisandAlgorithms.BirkhauserBostonInc,199714毛克明,王国仁.一种改进的基于Gabor小波的指纹增强算法[J].东北大学学报,2009,(1):47-4915孙以雷,陈卫红.指纹图像二值化算法的研究[J].科学信息,2011,(23):111-11216赵磊,陈琼,陈中.一种新的改进OPTA细化算法[J].计算机应用.2008,28(10);2639-2642',)


  • 编号:1700846514
  • 分类:标准规范
  • 软件: wps,office word
  • 大小:60页
  • 格式:docx
  • 风格:商务
  • PPT页数:2243597 KB
  • 标签:

广告位推荐

相关标准规范更多>