已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计学生姓名: 学 号: 专 业:_计算机科学与技术_题 目:_指纹模式识别系统的设计_指导教师:_ (教授)_评阅教师:_ 2014 年 6 月xx科技大学毕业设计成绩评定表 姓 名 学 号 成 绩 专 业 计算机科学与技术 题 目 指纹模式识别系统的设计指导教师评语及成绩 指导教师: 年 月 日评阅教师评语及成绩 评阅教师: 年 月 日答辩小组评语及成绩 答辩小组组长: 年 月 日答辩委员会意见 答辩委员会主任: 年 月 日 注:该表一式两份,一份归档,一份装入学生毕业设计说明书中。xx科技大学毕业设计成绩评定表 姓 名 学 号 成 绩 专 业 计算机科学与技术 题 目 指纹模式识别系统的设计指导教师评语及成绩 指导教师: 年 月 日评阅教师评语及成绩 评阅教师: 年 月 日答辩小组评语及成绩 答辩小组组长: 年 月 日答辩委员会意见 答辩委员会主任: 年 月 日 注:该表一式两份,一份归档,一份装入学生毕业设计说明书中。毕 业 设 计 中 文 摘 要为了改善特定身份鉴别持有物和特定身份鉴别知识这两大类传统身份鉴别方式的不足.使身份鉴别变的简单安全便捷,设计了一个指纹模式识别系统。指纹模式识别系统是基于C+,以Visual C+6.0 作为开发工具设计完成的。系统的主要模块有指纹图像采集模块、指纹图像预处理模块、指纹图像特征提取模块、指纹图像匹配模块。指纹图像预处理模块主要完成指纹的真实化处理、智能化增强、二值化的工作,为提取指纹框架做好准备。主要设计的算法有指纹畸变校正、指纹分割、指纹均衡、智能化增强、二值化和细化处理。指纹图像特征提取模块提取的特征点主要是端点、交叉点、中心点和三角点这四大类点。指纹图像匹配模块主要是利用指纹特征点的拓扑数据结构来进行比对的。设计的系统经实验验证,科学有效。关键词 指纹识别 特征点 智能增强 匹配 毕 业 设 计 外 文 摘 要Title The Design of Fingerprint Pattern Recognition System AbstractIn order to improve the traditional authentication which the authentication of specific holdings and specific knowledge,to make the authentication changing safe and convenient, design a fingerprint pattern recognition system. Fingerprint pattern recognition system is based on C+ and applying Visual C+6.0 as development tool. The main modules of the system are image acquisition module, fingerprint image preprocessing module,fingerprint image feature extraction module and fingerprint image matching module. The fingerprint image preprocessing module is to complete three work which the true fingerprint preprocessing, intelligent enhancement and binary, and prepare to extract the fingerprints framework. The main designs are include fingerprint distortion correction algorithm, fingerprint segmentation, fingerprint balanced, intelligent enhancement and binary and thinning. Fingerprint image feature extraction module is mainly extracted four categories points which end, intersection, center and triangulation point. Fingerprint image matching module is using of fingerprint feature topological data structures for matching pairs. The test verified the above system, scientific and effective.Key Words Fingerprint Recognition Intelligent Enhancement Categories Points Matching 本 科 毕 业 设 计 第 页 共页 目录1 引言12 开发工具及其运行环境22.1 软件环境22.1.1 C+的产生和发展以及特点简介22.1.2 Visual C+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指纹图像的智能化增强275.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) 应用于基层服务管理,信息汇总上:在社区服务保障及医保服务上,我们可以通过指纹录入来代替身份识别,即可以有效保证人们的生活安全也可以节省一定的工本费用,方便信息的统计汇总,有效地制定解决方案。在银行账户管理方面,银行管理系统可以通过指纹的添加、修改和删除,对注册用户进行管理,确保大额款项的安全流通。总之,通过指纹识别系统,既可以有效地识别人们的身份信息,防止造假,而且对人们生活出行,金融理财都提供了很大的帮助,可以高效率的提高国家的经济流通,提高国民生产总值,这对国家以后的经济发展也是很重要的。第 41 页 共 38 页 本 科 毕 业 设 计 2 开发工具及其运行环境本章主要介绍指纹模式识别系统所需要的开发工具及其运行环境,其中运行环境包括软件环境和硬件环境。2.1 软件环境指纹模式识别系统的软件环境主要包括两个方面,下面将分别介绍。2.1.1 C+的产生和发展以及特点简介C+相对于C语言来说,最大的优点就是可以面向对象,而C语言是面向过程的语言。相对于其它高级语言语言来说,C+比较难学,但是在各个领域中应用广泛,功能强大。面向对象设计相比于面向过程设计是一个很大的突破。类的引入,让C+语言把面向对象的特性表现的淋漓尽致。 C+的设计和演化2:C+语言的创造者是Bjarne Stroustrup,它兼具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+是一门语言,而不是一个完整的系统,每一种语言特性必须有一个有根据的、明确的实现方案。使其适用于真实世界中各种应用的便捷工具的强调;充分考虑程序员的技术和取向(偏好)。基本设计的规则:支持良好的设计方案;提供用于程序组织的语言设施;心口如一;所有的语言特性必须具有切实有效的承受能力;开启一个有用的特性比避免所有的误用更为重要;能将独立开发的部件组合成完整的软件。提供更易用并具有一定承受能力的设计思想和程序设计技术,进一步提高程序的质量。语言的技术性规则:与静态型别系统(Static type system)没有内在的冲突;像对内建(built-in)型别一样对用户自定义型别提供很好的支持;个异化(locality)行为是可取的;避免产生顺序上的依赖关系;在对语言产生疑惑时,可以选取其特性中最易掌握的部分;可以因为不正当的语法使用而产生问题(Syntax matters (often in perverse ways))削弱对预处理器的使用。基于低层次程序设计的规则:使用传统的(笨拙的)连接器(linker);与C语言不存在无故的不兼容性;不给C+之下层级的更低层语言留出余地(汇编语言除外);为不使用的部分付出代价(零负荷规则);在产生疑惑时,能提供完全自主控制的途径。在C+的设计中只要在不严重影响其对强型别检查(strong type checking)的支持的地方,都尽量做到与C的“source-link”方式相兼容。除了某些微小的细节差别之外,C+将CKernighan,1978Kernighan,1988作为一个子集包含了进来。C+与C的兼容性使得C+程序员立刻就能有一个完整的语言和工具集可用。还有两点也很重要,一是有大量关于C的高质量的教学素材已经存在,二是C+程序员可以利用C+与C的兼容性而直接并有效的使用大量现成的程序库。在决定将C作为C+的基础的时候,C还没有像后来那样出类拔萃、炙手可热,所以在考虑这个问题的时候,与C语言所提供的可适应性和高效性相比,C语言的流行程度只是个次要的考虑因素。然而,与C的兼容性也使得C+在某些语法和语义上保留了C的一些瑕疵之处。比如,C语言的声明语法就实在远不及优美;而其内建型别的隐式转换规则也是混乱无章法的。还有另一个大问题,就是许多从C转向C+的程序员并没有认识到,代码质量上的显著提高只能通过在程序设计风格上的显著改变来达到。2.1.2 Visual C+6.0简介及其优点VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+的一个开发平台.有些软件就是这个编出来的.另外还有VB,VF.只是使用不同语言,但是vc+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等3。 VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说 VC+不是门语言,虽然它和C+之间有密切的关系,如果形象点比喻的话,可以C+看作为一种”工业标准”,而VC+则是某种操作系统平台下的”厂商标准”而”厂商标准”是在遵循”工业标准”的前提下扩展而来的。 VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。 要想学习好VC必须具备良好的C/C+的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发展。vc6.0的优点是界面简洁,占用资源少,操作方便。 2.2 硬件环境本系统开发的硬件环境如下:a) Pentium(R)4 CPU 2.80GHz以上。b) 768 MB的内存以上。c) 操作系统为Windows xp。3 需求分析在进行指纹模式识别系统的开之前发,我们必须首先了解与分析用户与市场的需求。在做一个软件之前做需求调研是不可不缺少的,因为我们不能做一个没有实际用户的软件。通过调研,我们就可以知道,我们所做的软件是否实用,并且可以给软件所具有的功能作出导向。因此需求分析是整个设计过程的基础,它可以直接影响到软件的开发速度和质量。经过现场的调研,本章主要对指纹系统的业务需求、功能需求、性能需求、软件需求进行详细分析。需求分析是整个设计过程的基础,它将直接影响应用程序的开发速度与质量,所以对指纹模式识别系统的需求调研分析必不可少。3.1 业务需求分析指纹识别系统在业务上的应用主要是起到一个身份鉴别的作用。身份鉴别就像一把钥匙,也可以理解为权限,只有得到了这把钥匙,我们才能进行接下来的工作。它就犹如一个大门,只允许主人进去,一切陌生人都被拒之门外。传统的身份鉴别作用越来越不能适应当今社会的脚步,而且可应用的范围很小。指纹识别技术在身份鉴别上的应用顺应历史潮流,势不可挡。指纹识别系统可以应用在社会服务管理、医保服务管理、身份护照管理、银行账户管理、智能家居管理等等。把指纹识别系统嵌入在身份验证模块中,只需要本人的指纹轻轻一按,就能快速识别,进入接下来的工作,快捷,安全。在上面的这些行业中迫切需要指纹识别技术的加入让工作变的轻松,简单4。3.2 功能需求分析通过一系列的调查研究,对应上一节的业务需求分析,本节主要从指纹模式识别系统的几个功能模块指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征比配、特征数据库这几个方面来分析公司的功能需求。a)指纹图像采集 :用于捕捉指纹图像。b)指纹图像预处理 :预处理过程是整个系统关键的第一步。指纹图像由于输入设备等原因会发生畸变、不清晰、产生噪音,所以特征提取之前,需要对图像进行预处理。常用的预处理过程一般包括:增强、细化,分割、二值化等。c)指纹特征提取:指纹特征提取根据指纹对象预处理后形成的指纹框架,提取出指纹的特征点,然后把特征点分类,形成特征点拓扑数据结构。特征点整体上分成局部特征点和整体特征点。局部特征点有端点、交叉点,整体特征点有三角点和中心点。d)指纹特征比配:指纹特征比配就是输入的指纹特征与事先保存起来的模板特征进行对比,从而判断这两个指纹图像是否来自同一个手指。使用最普遍的指纹匹配算法是基于细节点的匹配算法e)特征数据库用来存储指纹图像模板。3.3 性能需求分析性能需求有以下几个方面:a)自己制作的指纹采集装置,采集图片要清晰。主要是拟采用COMS摄像头和三菱镜,应用光的折射成像原理来捕获指纹图像。应用三菱镜通过光的折射会增加图像采集的精度。b)指纹的信息量很大,要使计算机做到识别速度快,质量高,提高软件的性能,就必须要对信息做出合理化的减少。通过一系列的指纹模式转化可以极大地减少指纹的信息量。从而达到指纹识别的高速,高质。c) 软件的指纹比对结果要准确。拟采用数学上的拓扑数据知识,来完成指纹的比对。把指纹的特征点装配成指纹拓扑数据结构,然后利用整体特征点来进行匹配,使其处在一个坐标系下,再利用分支特征点进行精密的比对。达到精确地指纹比对结果。3.4 本章小结通过对一些个人的身份管理,银行账户管理,旅馆、社会保障部门进行的需求调研。然后分析需求调研的结果,能过帮助我更好地了解了指纹技术的用途,熟知指纹技术要实现的目的,和如何能够达到合理的人机交互界面设计。对我的指纹识别设计有很好的实际指导作用。能过做到从群众中来,再到群众中的软件才是好软件。 4 系统总体设计本章的内容是介绍指纹识别模式系统的总体设计。总体设计就像是一个设计蓝图,和方向标,给我们的工作作出指引。同时总体设计对项目的开发进度和项目的质量有着至关重要的影响。通过上一章对指纹模式识别系统的需求分析,在本章规划一个指纹模式识别系统的总体设计方向。指纹识模式识别系统存在着大量的算法,每个算法之间存在着独立性,把所有的算法按一定的逻辑关系就能实现强大的指纹模式识别系统。本章主要介绍指纹模式识别系统的算法总论,在对开发系统进行全面分析调查的基础上,制定出应用指纹模式识别系统的算法规划,对建立一个该系统来说是必须的,也是全面展开开发工作的重要基础。其中指纹模式识别系统的算法总论分为三个大部分:指纹模式对象的信息量、指纹模式转化方法、指纹模式识别系统算法的组成及流程。4.1 指纹模式对象的信息量在起初开始做指纹模式识别系统之前,我很迷茫,不知道到底该如何插手,面对我们自己的真实指纹,既熟悉又陌生。熟悉的是它就是在我们身上,摸得到,看得到,陌生的是指纹的特点,我们该如何进行辨别,还有计算机要出入处理,处理什么。后来我在图书馆查阅了很多关于指纹识别的很多书,逐渐的我找到了我的设计方向。设计思维导图如图4.1所示。 图4.1 思维导图指纹包含很多信息量,如此众多庞大的信息量正是我们得以实现指纹算法的基础。指纹模式对象的信息量是在物理上可以测量程度的物理量。指纹模式中的信息量有指纹纹路的各种走向、特征点分布情况、纹路区域分布、纹线之间的间隔、纹线分布密度等等可测量信息量的数字集合。换句话说指纹识别我们最终要做的就是比配指纹的信息量,信息量形似度的多少直接影响到比对的结果,同时指纹的信息量比配的多少也就决定了指纹模式识别系统的性能。所以用很少的信息量就可以来描述一个指纹的信息就是我们想要到达的目标。所以指纹信息量的研究是至关重要的。接下来让我们一步一步的剖析指纹模式对象的信息量5。a)真实指纹对象的信息量真实指纹对象就是我们自己手指上面的指纹,未经过任何处理的指纹。它就是我们人眼所看到的自然界中的指纹。从物理意义上说,它的可测量程度的物理量是无限的。从下面说明无限的缘由:1.根据三色原理自然界中的所有颜色都是有红、绿、蓝组成的。并且每一种颜色都有256中色阶。并且从红到绿,从绿到蓝又有无数种过渡。2.我们知道自然界中的一切都是由点组成的,但是在自然界中点是没有面积的,所以最小的单位是测量不出来的。所以自然界中的指纹信息量是无限的,对于真实的指纹如果不做任何的处理,面对无限的信息量计算机是无法完成指纹识别的。b)彩色指纹对象的信息量通过指纹采集仪,采集到的未经过灰度处理的,色彩、亮度不同的指纹图像就是彩色指纹对象。对于计算机来说彩色指纹图像就是亮度不同,色彩不同的指纹图像数据信息体。对于它的信息量我们可以这样来计算:我自己买的三菱镜长宽为的像素单位,计算机根据指纹采集仪的分辨率把图像数字化。但是指纹图像的大小不会超过采集器斜面尺寸。所以这样指纹图像的像素收敛为个像素点。我们之前提到过三色定理。每一种颜色有256种色阶,并且个像素点我们可以用2.5来绑定。这样我们就可以得到彩色指纹对像的信息量是:。彩色指纹图像的信息量还是很大,但是对于无限的真实指纹对象来说是个很大的进步。但是计算机处理起来还是不现实,需要我们进一步处理。c)灰度指纹对象的信息量彩色指纹对象具有三种色彩,如果把彩色指纹对像转化为只有单一色彩的灰色图像其信息量一定会大大减少。由于灰度图像只有单一的色彩,在灰度上有256种明暗亮度变化。所以灰度图像的信息量是:。此时信息量减少为原来的三分之一。此刻计算机应该是可以处理了,但是速度会很慢,就失去了用计算机处理的意义。我们必须进一步减少信息量。d)指纹对象模式信息量指纹对象就是只有指纹的部分,图片不包含出指纹图像的其它部分,也可以理解为把一张指纹对象图像里面的指纹部分扣出来,除去背景部分。这样做一下图像的信息量一定会比少,至于少多少,我们不知道,但是它一定会减少。e)指纹纹理模式对像的信息量指纹的纹理模式是只有黑白两种颜色的指纹图像对象,灰度图像中的灰度具有256种灰度明亮的色阶,而指纹纹理图像对象就只有黑和白两种色阶。所以把指纹图像转化成指纹纹理图像对象后,指纹的信息量就变成了,我们可以看出,此刻的信息量与彩色指纹对象模式的信息量相比已经小了很多。此是的指纹图像应经很接近我们最终要得到的指纹对象了。但是为了加快计算机运算速度我们还需要做进一步的处理。f)指纹纹理特征模式对象的信息量在数学上我们知道几个点和确定一条线(两个点确定一条直线),指纹图像是有几条线组成的,我们可以设个点确定一条线,一个指纹图像有条线,则指纹对象信息量为,次刻的信息量一定比小。其实依据数学上的拓扑学我们还可以进一步精简指纹对象的信息量。g)指纹特征对象的信息量从上面的指纹纹理特征对像我们可以知道指纹的特征可证可以由点和线确定,其实经过大量的实验证明,用两个特征点(如端点、交叉点)每种点12个为一组,经过比对就可以完成指纹对象的识别。此刻用一组特征点来描述指纹的成为指纹特征对象,它的信息量为,这是的信息量就很小了,用计算机来处理此刻的信息量速度就很快了 ,足以达到工程上的要求。总结:通过上面对信息量的分析我们可以知道我们最终要得到的指纹对象就是指纹特征对象。指纹对像从最初的:真实指纹对像彩色指纹对像灰度指纹对象指纹对象模式指纹纹理对象指纹纹理特征对象指纹特征对像,七个信息量的变化。我们所做的算法也正是围着这七个模式转化而设计的。通过分析指纹信息量可以给我们指明做一个指纹模式识别系统该怎么做,和为什么这么做。4.2 指纹模式转化方法通过上面一节我们可以知道,做好指纹模式识别系统的关键在于减小指纹对象的信息量。上面一节也给出了,指纹对象模式转化的七个模式。上面一节给我们指明了设计方向,这一节我们主要介绍一下如何实现这些转换。这一节主要包括六个转化。a)真实指纹对象转化为彩色指纹对像,该转化主要是用指纹图像采集仪根据采集仪固有的分辨率对指纹图像进行数字化指纹采集。通过采集完成真实指纹对象到彩色指纹对象的转化。b)彩色指纹对像转化为灰度指纹对象,该转化过程根据颜色的三色定理和灰度转化公式:。通过逐点转化就可以把彩色图像转化为灰度图像。其中是红色,是绿色,是蓝色。c)灰度指纹对象转化为指纹对象模式,该转化过程主要是依据场来实现的,背景对象像素的分形维数和指纹对象的分形维数是不一样的。(分形维数是数学上一种新的世界观和方法论)。根据分析维数的分析就可以把图像的背景和指纹对象分离开,得到指纹对象模式。d)指纹对像模式转化为指纹纹理对像,该转化过程主要是应用一个新的技术,智能化处理。我们知道我们的眼睛有一种自动的只能处理功能,就是如我让我们看远处的东西,如果我们事先不知道它是什么我们会觉得很模糊,假如事先有人告诉你它是什么,这样看起来我们会觉得它比较清晰,这就是我们眼睛智能化增强的过程。在此处我们也用相同的手段指纹智能化增强,让脊变的很黑,让谷变的很白。形成指纹纹理模式。e)指纹纹理对象准化为指纹纹理特征对象,该过程是数字指纹学通过一系列的数学运算和传统的指纹知识,对智能化图像的端点、交叉点、中心点、三角点等特征点进行标识,从而通过这些标识我们就可以确定指纹纹路的各种走向、特征点分布情况、纹路区域分布、纹线之间的间隔、纹线分布密度等等。完成指纹纹理对象到指纹纹理特征对象的的转换。f)指纹纹理特征对像到指纹特征对象的转化,该转化过程主要是运用数学上的拓扑知识,对上面指纹纹理特征找出的特征点进行分支划分,并且按照拓扑结构,以中心点、三角点或者方向场等特征点为主干,其它特征点为分支,进行指纹总体特征拓扑结构的组装,形成一个树形的拓扑结构,从而完成指纹纹理特征到指纹特征对象的转化,实现最后的转化。真实指纹对象彩色指纹对象灰度指纹对象指纹对象模式 指纹纹理/特征对象指纹特征对象 下面给出这七种指纹对象的转换图,如图4.2所示。图4.2 指纹对象模式转换图总结:这一节给了我们如何实现转化的方法,上面一节告诉了我们实现什么样的转化。前一节就像是地基给我们铺垫好了一切,这一节就像是高楼的框架,初步的外形已经实现,接下来的一节就是装修,告诉我具体的细节设计。4.3 指纹模式识别系统算法的组成及流程在这一节中,我们将介绍指纹识别系统的算法。经过上面两节的介绍,我们已经知道了对于指纹模式识别系统我们该做什么和怎么做的问题,现在我们要做的是介绍算法的具体流程规划。指纹模式识别系统的算法组成由两部分,一部分是离线的,一部分是在线的。离线的部分有:指纹对象采集指纹对象预处理指纹对象特征提取指纹图像匹配。在线部分有:指纹图像采集指纹图像预处理指纹 图像特征提取指纹图像模板与指纹模板匹配,如图4.3所示指纹图像匹配 图像特征提取指纹图像采集指纹图像预处理 指纹模板 图4.3 指纹算法流程图从上面的指纹模式识别系统的算法组成部分我们可以得出主要的算法模块主要有:指纹图像采集,指纹图像预处理,指纹图像特征提取,指纹图像匹配,这四大模块。指纹识别算法的精髓和要点也就是这四大模块。指纹识别算法,算法众多,我们必须要把算法分成模块,然后有机的把四大算法模块联系组装起来,才能有序的完成指纹模式识别系统的所有算法。下面介绍一下各算法模块的功能和算法流程规划a)指纹图像采集 :拟采用CMOS摄像头和三菱镜通过光的折射原理来制作指纹图像,获得合格的指纹对像数字信息矩阵。COMS摄像头像素为800W像素,三菱镜为等腰直角三菱镜。模块算法流程如图4.4所示 自制指纹采集器采集指纹 差影算法处理 N 差影域值判断 Y 进入指纹预处理模块 Y 图4.4 指纹对象采集图 b)指纹图像预处理 :预处理过程是整个系统关键的第一步。在该模块,我用到了方向场、频率场、小波分析、灰度直方图、高斯函数、等知识。指纹图像预处理主要作用有指纹图像真实化处理,指纹图像智能化处理,指纹图像细化骨架提取,算法流程如图4.5所示 畸变矫正处理二值化 智能化处理细化分割 均衡,平滑 图4.5 指纹预处理图c)指纹特征提取:经过指纹图像预处理以后,拟根据数学上的拓扑学知识逐条提取纹线的端点,交叉点,中心点,三角点等特征点。端点、交叉点是局部特征点,中心点和三角点是整体特征点。然后以整体特征点为主干,局部特征点为分支,把所有的特征点装配成拓扑数据结构,算法流程图如图4.6所示 特征点提取 装配成拓扑结构 进入指纹匹配模式 图4.6 指纹特征提取图d)指纹特征比配:在该模块用上面的形成的拓扑结构,依据中心点或者三角点或方向场的整体特征点为中心进行指纹特征点匹配,目的是使其处在同一个坐标下。然后在比对分支特征点,根据比对的相似度得出结果,算法流程如图4.7所示。指纹特征拓扑结构进行拓扑数据结构匹配进行方向场点配准 进行三角点配准 进行中心点配准有无中心点有无三角点 Y N Y有无方向场点 N Y 图4.7 指纹对象比配图 4.4 指纹模式识别系统总体算法流程规划上面已经比较详细的介绍了各个功能模块的算法流程规划。一个完整的指纹模式识别系统是这个几个模块的有机结合,把握好各个模块之间的逻辑关系,最后能过有机的整合到一起。同时分模块的好处是不仅可以实现代码独立,并且可以灵活的移植代码,实现了代码的多重利用,同时还能减小报错,提高开发速度。下面给出了各个功能模块之间的联系图,也就是总体算法流程图,如图4.8所示。指纹图像匹配指纹图像预处理 指纹图像特征提取指纹图像采集 图4.8 算法总流程图 4.5本章小结通过对本章的介绍,我们对指纹模式识别系统的整体设计有了整体上的了解。知道了该项目的总体设计流程。解决了指纹模式识别系统该做什么,为什么这么做,和怎么做的问题。在本章我们首先通过一个思维导图,告诉我们指纹模式识别系统该做什么的问题,进而引入指纹对象模式。我们要做的就是实现指纹对像模式的转换。接下来我们通过分析指纹的信息量,让我们知道我们为什么要转换指纹对象模式。并且了解到转换的最终的目的就是尽可能大的减小计算机最终处理的信息量(但是这些信息量还能过足以科学合理的描述一个指纹),实现计算机高速高效处理指纹识别的目的。再后来,我们又具体的说明了系统各个模块的算法流程同时给出了算法流程图和逻辑关系,指导我们该如何做。通过本章,我们足以掌握设计一个指纹模式识别系统的三个大问题:做什么,为什么这么做,和怎么做的问题。很好的解决了这三个问题,我么足以设计出一个让我们满意的指纹模式识别系统。5详细设计本章的主要内容是介绍指纹模式识别系统的详细设计。内容介绍主要包括MFC界面的设计和基于C+语言指纹算法的设计,主要算法分为三大部分为指纹图像预处理、指纹图像特征点提取、指纹图像匹配。其中指纹图像预处理、指纹图像特征提取、指纹图像匹配这三个大的算法,包含很多分支算法,每一部分都是由很多分支算法组合而成的。接下来我将比较详细系统的介绍一下指纹模式识别系统的详细设计。5.1基于MFC的指纹模式识别系统的框架设计之前我是没有接触过MFC的,我也做过一些界面设计,但是基于C#的一些非常简单的界面设计,只要一拖拉控件,就可以形成了。以前听说C+的界面的设计比较难,具体怎么样,我之前也不知道。做指纹模式识别系统我选用了C+语言,因为C+语言本身具备一些其它语言不可能具备的优点,因为C+语言更接触底层,所以C+语言有比其它语言处理问题速度更快的优点,这一点上,其它语言是望尘莫及的。由于指纹模式识别系统涉及到很多的算法,为了能满足其快速,高效的性能需求只有用C+语言才恩能够胜任。下面说一下如何用MFC搭建指纹模式识别系统的框架。其实用MFC搭建系统的框架还是很简单的。在我的设计中主要有三个界面。下面先简单介绍一下MFC界面是如何设计的。首先我们需要打开VC+6.0然后选择新建MFC AppWizardexeokDialog basedFinshok。如图这样一个简单的界面就完成了,如图5.1所示。 图5.1 界面这是一个空白的简单界面没有任何控件,这当然是不能算是一个框架了,下面我来简单的说明下一如何加入一个简单的控件。控件如图5.2所示 图5.2 控件图用鼠标把右图中的button控件直接拖入到图5.1中。然后右击控件,选择Properties,我们就可以在里面设置控件的ID和Caption。控件的ID就像是指针一样,唯一确定一个控件。Caption是控件的名字栏,我们可以在里面修改控件的名字,这样我们就在界面中加入了一个控件。接下来我们双击控件,点击ok就可以在控件对应的部分输入控件的控制语句了,在代码输入的上面还有很多自动生成的代码,这部分是我们不用修改的,这是系统设定的,这样来看MFC界面设计还是很好的。然后我们在输入语句部分输入AfxMessage(“BoxHelloworld”),这样一个简单但是很经典的MFC框架程序就完成了,效果图如图5.3所示 图5.3 效果图 通过上面的介绍我已经详细的说明了如何制作MFC框架和MFC程序了。指纹模式识别系统程序所需要的三个框架就是这样设计的,只不过控件的数量比较多,算法比较复杂,但是在我的设计中基本上就是反复用上面的框架和控件设计过程。下面给出我设计的三个框架界面图。其中主界面图如图5.4所示,离线对比界面如图5.5所示,在线认证界面如图5.6所示。 图5.4 主界面 图5.5 离线比对界面 图5.6 在线认证界面在上面的三个图中图5.4是指纹模式识别系统的主要界面,图5.5和图5.6是指纹模式识别系统的两个分界面。起初我在设计在界面布局是没有什么问题,但是界面的跳转让我犯了难,我之间对于多界面程序设计接触的少,不知道该如何跳转,后来查阅资料这个问题终于解决了,也许对于高手来说,这个问题不足以称之为问题。其实界面之间的跳转就是仅仅需要简单的几条语句下面我给从主界面跳转到离线比对界面的语句:void CMyFPSysDlg:OnButtonOffline() / TODO: Add your control notification handler code hereOfflineMatch om;om.DoModal();我们可以看出就是好仅仅的两条语句结束了上面的问题。一次类比,各个界面的跳转,对于我来说都不成问题了6。总结:对于MFC的框架设计还是比较容易完后的,最主要的就是在设计前首规划好布局,知道自己到底要设计几个界面,各个界面之间的联系是怎么样的,俗话说磨刀是不误砍柴工的。起初我在设计的时候,由于没有把握好布局,搞得重新反工了好几次。5.2 基于C+的指纹图像预处理算法指纹图像的预处理算法包括指纹真实化处理算法、指纹智能增强算法、细化处理算法。其中指纹真实化处理算法包括指纹图像畸变矫正算法、指纹图现场算法、分割算法、指纹图像均衡算法、指纹图像收敛算法、指纹图像平滑算法。细化处理算法包括二值化算法,细化算法。下面我将比较详细的一一介绍这些算法。5.2.1 指纹图像畸变矫正不管采取什么样的指纹采集设备,由于设备本身和外界的一些噪音影响,图像都会发生或多或少的畸变。即使是很高级的单反相机,在它的内部也装有图像畸变矫正功能7。对于我自己用三菱镜和CMOS摄像头制作的简单的指纹采集装置,采集到的指纹图像一定会发生图像畸变。经过简单的图像采集我发现,由于等腰直角三菱镜的采集面是斜面和光的折射成像原理,指纹图像会发生上面的指纹纹线密,下面的指纹图像疏的畸变,同时指纹图像的亮度也会不均匀。下面用一个图来说明三菱镜采集畸变的数学建模,如图5.7所示。 图5.7 畸变模型图从上面的图我们可以看出当三菱镜上面的三个点A、B、C通过光的折射到成像面后,它们不在是等间距,而且也不再一个平面上。里成像面越近的点越亮,远之则比较暗。所以通过三菱镜采集图片会发生上面所说的畸变。 接下来我查阅了多方面的资料,最终找到了如何来矫正的办法,我在此次用数学建模来解决此问题。首先我们建立数学模型,用来解决Y方向上和X方向上的畸变。Y方向的畸变如图5.8所示,X方向的畸变如图5.9所示。 图5.8 矫正模型一图 图5.9 矫正模型二图我们要找的就是上图中的和之间的关系,从上图中我们可以知道的纵坐标是,而的纵坐标是,从图我还发现和与、这三条光路有关。然后我把这三条光路直线的式子列出来,就可以找到和的关系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及参考答案详解
- 喀什地区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(考试直接用)
- 德州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合卷)
- 2026年莆田市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(历年真题)
- 龙岩市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(能力提升)
- 巴音郭楞蒙古自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解参考
- 阜阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名校卷)
- 宁夏回族自治区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有完整答案详解
- 舟山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 延安市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(a卷)
- 美团外卖配送服务合作协议
- 渔家傲秋思课件
- 新版道德与法治三年级上册《4.科技力量大》教学设计
- 《病原体核酸检测示范》课件
- 沁水盆地高阶煤煤层气的高效开发技术与实践
- 成人高等学历教育英语教育专业课程教学大纲
- 《房屋市政工程生产安全重大事故隐患判定标准(2024版)》知识培训
- 2026年日历表全年表(含农历、周数、节假日及调休-A4纸可直接打印)-
- SZDB∕Z 317-2018 大中型商场、超市安全防范规范
- 2024年部编版三年级语文(上)册期中测试试卷 5套
- 2024年12月管理体系认证基础考试真题及答案
评论
0/150
提交评论