毕业论文指纹识别算法的matlab实现

上传人:ail****e1 文档编号:46928913 上传时间:2021-12-16 格式:DOC 页数:51 大小:1.28MB
返回 下载 相关 举报
毕业论文指纹识别算法的matlab实现_第1页
第1页 / 共51页
毕业论文指纹识别算法的matlab实现_第2页
第2页 / 共51页
毕业论文指纹识别算法的matlab实现_第3页
第3页 / 共51页
点击查看更多>>
资源描述
指纹识别算法的 matlab 实现摘 要 由于指纹所具有的普遍性,唯一性和不变性,以及指纹识别技术具 有很高的可行性和实用性,使之成为目前最流行、也最可靠的个人身份认证 技术之一。本文主要对指纹图像进行三方面处理:图像预处理、特征提取和特征 匹配。图像预处理包括四个步骤:图像分割、滤波增强、二值化、细化,对 指纹图像进行预处理后,去除了原图像的冗余部分,方便后续的识别处理; 特征提取主要是提取指纹图像细化后的端点和分叉点; 特征匹配是利用两个 指纹的图像进行特征点比较,来确定两幅图像是否来自于同一手指。本文给出了指纹图像预处理、特征提取、特征匹配的matlab 程序及处理结果。该结果证明,用matlab实现的这些算法的处理结果比较理想,满足识别的可行性和应用性。关键词 分割,二值化,细化,特征点提取,匹配, Matlab11AbstractBecause of the uni versality, uniquen ess and con sta ntn ess of a fin gerpri nt, and fin gerpri nt ide ntificatio n tech no logy has very high feasibility and practical applicability, make it to be one of the most popular, and most reliable personal iden tity authe nticati on tech no logy.This paper focuses on three aspects of the fin gerpri nt image processing image preprocess ing, feature extracti on, feature matchi ng. Image preprocess ing in cludi ng four steps: image segme ntati on, filteri ng, bin ary, Refining, after The fin gerpri nt image preprocess in g, in additi on to the origi nal image of redundancy part, convenient subseque nt ide ntificatio n process ing; The mai n feature extraction is extracted from the end of the fingerprint image after thinning and bifurcatio n point; Feature matchi ng is use two fin gerpri nt image feature point is to determ ine whether the two images from the same fin ger.This paper provides the fin gerpri nt image preprocess ing, feature extracti on, feature matchi ng use matlab and han dli ng results, The results prove that these algorithms had ideal results be used by matlab, Be satisfied with the recog niti on and feasibility of the applicatio n.Key Words: Segme ntati on, Bin ary, Refining, Feature point extract ing, Match ing,Matlab毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指 导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢 的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我 为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体, 均已在文中作了明确的说明并表示 了谢意。作者签名: 日 期:指导教师签名: 日 期: 使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校 有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务; 学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为 目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写的成果作品。 对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。作者签名:日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和 汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日目录第 1 章 绪论 61.1 指纹识别概述 61.1.1 研究背景及意义 6.1.1.2 国内外研究状况 6.1.2 指纹识别的原理和方法 7.1.2.1 指纹的基本知识 7.1.2.2 指纹识别的原理及应用 9.1.3 Matlab 在指纹识别中的应用 1.0第 2 章 指纹图像预处理 112.1 图像的分割 1.1.2.1.1 图像归一化 1.2.2.1.2 图像分割的方向法 1.3.2.1.3 图像分割的方差法 1.4.2.2 图像的二值化 1.5.2.2.1 方向图 1.5.2.2.2 指纹图像二值化 1.6.2.2.3 静态阈值二值化 1.7.2.2.4 基于方向场的二值化 1.7.2.3 指纹图像的滤波 1.9.2.4 图像细化 2.2.2.4.1 快速细化算法 2.3.2.4.2 改进的 OPTA 算法 2.3第 3 章 图像特征提取和特征匹配 2.73.1 特征点提取 2.7.3.2 找出特征点 2.7.3.3 特征点匹配 2.8.总结与展望 3.2.致 谢 3.3.参考文献 3.4.附录 A 预处理代码 3.5.附录 B 特征点提取代码 3.9.附录 C 图像特征点代码 4.1.附录 D 特征点匹配代码 4.4.第 1 章 绪论1.1 指纹识别概述21 世纪是信息化时代, 在这个特殊的时代, 我们的生活中电子设备越来 越多,比如,笔记本电脑, ATM 取款机, 考勤系统 ,门禁系统和各种智能 卡,网络中的网上银行,人人网账号等,都需要验证身份。对个人身份识别 技术的要求不断提高, 如果没有安全可靠和快捷的身份识别技术, 电子商务、 网上购物等就存在重大隐患。 目前许多身份验证系统都采用 “用户名 +密码” 的方式来进行用户访问控制 1 ,但此方法存在诸多隐患,比如密码被窃取、 破解或遗忘。因此我们在与机器交互时急需一种准确、安全快捷的识别技术 来取代现有的身份验证。1.1.1 研究背景及意义因为人的一些特殊的生物特征, 人们把身份认证技术的目光转向了生物 特征的识别技术。 生物识别技术是利用人体生物特征进行身份认证的一种技 术,它主要有指纹、手形、脸形、声音、虹膜、视网膜、签名、掌纹、和脸 部热谱图等,在生物识别技术中指纹识别技术是目前相对成熟的一种。1.1.2 国内外研究状况指纹是人特有的一种特征,在中国的研究也有近百年的历史,中国被认 为是世界上最早应用指纹识别技术的国家,指纹识别技术从很早以前的人工 比对到现如今采用先进的计算机技术实现指纹的识别,使得指纹对比比以前 更加准确,识别效率得到了非常大的提高。在国外,经过几十年的发展,指纹识别技术的软件和硬件相对来说都比较成熟。在很多国家内,政府用法律强制性的规定来保证生物识别技术的应 用。所以总体上来说,国外的指纹识别应用己经进入了正规的应用阶段。但是在国内,经过了十多年的发展,指纹识别的一些关键算法是有了较 大的提高和发展,但是距离国外的优秀算法仍然有非常大的差距,因此国内 的应用现在处于发展的初期,应用主要集中在自发性的企业上。指纹识别的应用前景是非常广阔的,它的应用将渗透到社会生活,经济 贸易的每一个角落,将成为保护我们个人以及国家信息的重要手段。1.2指纹识别的原理和方法1.2.1指纹的基本知识指纹是我们各个手指的第一个指节的指头表面突起的脊线;而脊线是手指突起的花脊线条;谷线是两个脊线之间低凹下去的部分;指印是指纹在物体表面留下的痕迹;指纹的细节特征是指纹固有的自身特点。根据指纹中的细节特征我们常将指纹特点分为端点和分叉点,如图1-1所示端点*分叉点图1-1端点、分叉点英国科学家Gallo n在1892年的Fin ger print一书中提出了指纹的四条基本性质。(1)确定性:指纹脊线的轮廓和细节特征是在人的一生中基本上保持 不变。自胚胎六个月到出生至死亡腐败之前,始终是没有很大变化的。指纹 的确定性,还表现在它具有一定的复原性和难于毁灭的特性。(2)唯一性:由于指纹脊线的连接关系千变万化,因此,即使两个不同的指纹有着相同的轮廓和相同数量的细节特征,它们的细节位置也是不可能完全相同的。(3)可分类性:指纹可根据脊线和谷线的走向进行分类,一般可分为 如图1-2所示的弓形、环形和螺旋形。嚓*二 0(a)弓形(b)环形图1-2指纹类型(C)螺旋形(4)留痕性:指纹接触物体后会留下痕迹。指纹的这个特点,是与手 掌表面附着面的污垢的性能紧密相关的。正是因为这些独特的性质,指纹被国内外的刑侦界称为“证据之首”。一切指纹的自动识别系统,都是根据这些独特的性质,进行身份的识别和确 认的。脊线是指纹的一个非常突出的特征,指纹的脊线一般由弓形线、环形线、 箕形线、螺形线、曲形线和棒形线等脊线组成,每种脊线具有不同的细节和 长度,如图1-3所示2。(b)环形线(c)箕形线(d)螺形线(e)曲形线图1-3脊线的一般形态(f)棒形线1.2.2指纹识别的原理及应用在指纹识别的技术中,一般都采用总体特征和局部特征来进行识别。 总 体特征是那些很容易就能看出来的非常明显的特征,局部特征则是一小块 指纹中的细节特征。指纹纹路一般都会有断点和分叉点,因此会形成一些独 特的节点。根据研究,两个指纹的总体特征有时候会很相似,但是局部特征 是不会相同的,即没有两个指纹的纹路是相同的。英国学者E.GHerry认为,只要有13个特征点能重合,就可以确认这两枚指纹是同一指纹 。指纹的面 积虽然不大但却蕴含着大量的识别信息。这些皮肤的纹路会在交叉点,断点 上有很大的区别。在指纹识别的过程中将其称为“特征点”,利用特征点的 性质,我们可以把一个人的指纹同预先存储起来的指纹模版对比来验证他的 真实身份。指纹识别技术主要包括三大部分:指纹图像采集、指纹预处理、特征提 取与匹配。如图1-4所示。指纹图像采集指纹特征提取指纹匹配匹配结果指纹作为人类与生俱来的特征,因为其独有的特性而成为具有法律地位 的有力证据。一切需要身份确认的场所,都有它的踪影,如金融证券类的ATM 指纹终端、指纹保险箱等、IT类的计算机的系统密码验证、网络安全等、安 防类的门禁系统等、医疗类的个人医疗档案验证等、福利类的医疗确认、福 利确认等,因此指纹识别在许多行业的应用系统中都具有广阔的应用前景。1.3 Matlab在指纹识别中的应用Matlab是一种高级的计算机语言,具有独特的数学运算能力是 matlab 语言最突出的优点。许多在其他语言中描述起来很复杂的问题在matlab语言编程中却只需要一条专用的指令就可以完成。Matlab语言的所有计算都是基 于矩阵的,所以matlab中的所有变量都被定义为矩阵,它是一种解释型语言: 因此几乎没有语法格式上的限制。基于matlab实现指纹图像算法及仿真验证 不仅有较高的准确率,而且减小了仿真难度。第2章指纹图像预处理图像预处理是对原始图像进行的一种前期处理,方便后续的模块识别。 无论采用何种方式获取的指纹图像,都有一部分由于质量原因,不能被系 统直接识别,因此图像的预处理就显得非常有必要。指纹图像的预处理目的就是将自己感兴趣的目标区域保留下来,去除背景区域和没有用的部分,同时根据指纹目标区域中脊线的结构特征,采取较 好的滤波方法,提高指纹脊线清晰度,平滑脊线边缘的毛刺和空洞,抑制图 像噪声,保证指纹特征的可靠提取,并使灰度图像转化成黑白的二值图像, 最终得到脊线结构清晰的单像素宽的二值图像。 本文预处理的主要流程如图2-1所示2.1图像的分割图像分割是从一幅图像中按一定规则将一些物体或区域加以分离,划分出我们感兴趣的部分或区域。经过分割后的图像更容易进行进一步的分类、 分析和识别处理。图像分割要在指纹二值化和滤波及细化之前进行,如此可 以减少计算的冗余量,提高指纹检测速度。采集到的指纹内容分为目标区域和背景区域。在指纹图像中,由脊线和 谷线组成的较清晰的部分,称之为目标区域;没有用的部分我们称之为背景区域。指纹识别中的分割就是将有用的目标区域分割出来,去掉没用的背景 区域,以避免背景区域的各种干扰。指纹图像可分为四类区域:背景区、不 可恢复区、可恢复区、清晰区,如下图 2.2所示。清晰目标区可恢复区图2-2指纹图像的四种区域512.1.1图像归一化对指纹图像进行分割处理,消除剩下的背景区域前,首先要进行图像 归一化。对采集好的指纹图像进行归一化处理,是对指纹灰度图的灰度均值和 方差做一次调整,使得不论用什么设备采集的指纹图像都可以有预期的方差 和均值,从而屏蔽不必要的噪声。指纹归一化不改变指纹质量,只是方便指 纹的后续处理并保证程序运行时收敛加快。由于不同指纹区域的手指压力和强度不同, 所以将指纹分为 W*H小块, 设图像中像素点的灰度值为l(i,j),归一化后的图像 G(i,j)来表示,灰度平均 值和方差分别用Mi和Vi来表示,则归一化算法如下 :(1) 先计算出图像灰度的平均值和方差:(2-1)I H 4W 4Mi 二、X |(i,j)WH i=o j=oVi =1WHHW J、(l(i,j)-MJ2i =0 j =0(2-2)(2) 指定期望的图像方差和平均值后,算出归一化后的图像G(i,j):MoG(i, j)二Vo(l(i, j)-Mi)2VVo(l(i, j)匚 MJ2Vl(i,j) Mil(i, jMi(2-3)其中Mo,Vo为期望的平均值和方差(一般 Mo = 15O,Vo =2000)Matlab程序见附录A图2-3归一化图像2.1.2图像分割的方向法这一方法是基于指纹方向信息的分割方法, 它是利用了指纹的脊线和谷 线所蕴藏的平行方向信息来分割的,该方法的优点是:适合有污渍的指纹, 但缺点是因为依赖脊线的方向,所以脊线不连续时将被识别为背景区域,难 以取得满意效果。且计算复杂,处理时间很长,不适宜实际使用。2.1.3图像分割的方差法方差法:传统的分割算法都是基于图像局部灰度方差的分割方法(即方差法),一般地,目标区域中指纹脊和谷的灰度差是较大的,因而其局部灰 度方差也较大;对于图像背景区域,方差值则是较小的。基于这一基本特性, 可利用图像的局部方差对指纹图像进行分割。该方法的优点:算法简单,计 算速度快,如果采集到的指纹质量好,则分割效果不错;缺点:对质量较差 的指纹,该方法分割效果不是很理想,如当指纹背景区域有污渍时,这些区域的方差也比较大,用方差法分割时就不能被有效地分割出去。改进后的方差法:为了解决上述问题,可以在方差法分割的基础上进行开运算和闭运算操作,该算法继承了方差法的优点且又克服了易受噪声影响 的缺陷。把指纹的图像分成3*3块,将归一化处理后的图像进行分割的具体算法步骤如下:(1)利用式(2-1)和式(2-2)对指纹的小块求灰度平均值和方差,设定一阈值T,因为是3*3模块,所以是在8邻域中,即T=4,若Vi4,则该 小块作为目标留下,并把该块标示为1,存放于矩阵A中;若Vi BC=0 ; P+2Q+2R=0)。二值化后的指纹图像通过平均滤波器的处理,其每一点灰度值由它临近的二十四个(因为是5*5的滤波器)像素的灰度值决定,因此可以用下式来 对f(i,j)(第i行和第j列的灰度值)进行处理9:2 2 2f i, j = v C f i 一2, j m B f i 一1, j m A f i, j mm =_2m =-2m =_22 2 B f i 1, j m C f i 2, j m( 2-6)m =_2m =-2平均滤波的原理如下:对于脊线中的断点我们采用平均滤波器。断点处 脊线的灰度值要比周围的灰度值小,经过平均滤波器的处理,它的灰度值就 大约等于周围的灰度值,因此二值化后的指纹中断裂的脊线就会被连起来。对于脊线中的分叉点我们采用分离滤波器。脊线中叉连点的两端灰度值比中间的要稍微大一些,经过分离滤波器的处理,叉连点处的灰度值就会降 下来,脊线中的叉连点就会被去除了。脊线的断裂和叉连点如图2-10所示:断裂脊线原脊线叉连脊线原脊线图2-10断裂与叉连因此选择增强滤波器的时候必须要具有类似平均滤波器和分离滤波器作用的增强滤波器,分离滤波器的权值可以用下图2-9来表示,并且可以得到 般滤波器的权值如图2-11。MMMLLLLLKKKKKLLLLLMMM图 2-11上下文滤波器的权值参数满足 K 二A+P,L 二B+Q,M 二C+R。上下文滤波器中的平均滤波器起到了去除空洞的作用,分离滤波器起到了去除毛刺的作用。算法实现的matlab程序见附录A。结果如图2-12和图2-13:图2-12去除毛刺图2-13去除空洞2.4图像细化分割和滤波后的指纹图像再进行二值化处理后,脊线仍然有一定的宽度,指纹识别的匹配是只利用图像的点或线的特征,这些点或者特征只与脊 线的走向或者纹理有关系,有一定宽度的二值化图像显得有些多余,所以需 要对二值化图像进行细化处理,指纹二值化图像经过细化处理即可得到一个 单一像素宽度的脊线,经过上述的细化处理,在后续的指纹特征提取和特征 匹配的算法中大大的减少了计算的冗余量和出错率,使得指纹识别的速度和准确度有了很大的提高。细化目的是在不破坏指纹图像连通性的情况下去除掉多余的信息(即多余的像素点),将二值化的指纹图像的脊线采用逐层剥离的方法,将图像中 的指纹脊线细化成单象素宽(实际为保存原图的骨架)。一个好的指纹细化 算法必须在不破坏指纹纹理性和连通性的情况下细化成单像素脊线。总体来说,细化算法应满足(1)尽量保持原图像的基本机构特性 (如脊线的形态);(2)尽量以脊线的中轴线或者指纹的中心为重心;(3)从指纹脊线的两面 对称的删除;(4)保证细化完后的指纹图像是单个像素的;(5)对边缘上噪 声不应该敏感;(6)算法简单且实用。2.4.1快速细化算法快速细化算法的原理为先判断出指纹的边缘,并沿着脊线的边缘对称的逐步删除像素,直至删除的剩下单个像素。该算法速度快但不彻底。它的算 法为(1)遍历整个指纹的图像,找出指纹图像脊线的边界点(图 2-14中的 X的八邻域为R到P )。脊线上每一点的八邻域,脊线端点的八邻域中只有一 个目标点,脊线连续点的八邻域有两个目标点,分叉点有三个目标点,且每 点八邻域最多只有三个目标点,符合上述条件的才为单像素宽。X耳图2-14 X点的八邻域(2)当X点周围的点多于三个目标点时,将多余的点删除,依次删除 到剩下三个时判断该点是否为分叉点,不是再删除,剩下两个点时,判断是 否为连续点,不是时删除,当为一个点时不删除。(3)循环寻找,直到没可删除的点为止。2.4.2改进的OPTA算法常用的传统细化算法还有 OPTA算法10(基于模板的图象细化算法) 原理为构造两个模板:一消除模板和一保留模板,将指纹图像二值化后与这两个模板相比较,来决定是否删除该像素,本文研究的是改进后的 OPTA算 法,改进后的OPTA算法的优点是消除了原OPTA算法算法中两种模板不一 致的问题。本算法采用统一的4*4模板,消除模板有八个,保留模板有六个, 模板的结构如下图2-15,图2-16,图2-17所示P2号13耳耳X图2-15 OPTA算法的改进模板(4*4)0000X11111X0X1X011X1X1101110X10001X0X0000XX1XX1X110011011110X1XX1X00XX00图2-16消除模板(八个)X1X0XX00XX1X011001100110X1X0XX1XXX00XXXXXXXXXXXXX0XXX0XXX0XX111XX1XXX1XXX1XX110X011X000XX00X00XX图2-17保留模板(六个)改进后的OPTA算法的细化原理:从图像(类似于 4*4的模板中)左 上角开始进行,图中的各个像素(如图所示的元素,用P表示)抽取如图2-15所示的PiPi5总共十五个相邻像素,其中的八个相邻的像素(PP4,P6F9)与图2-15所示的消除模板(八个)相比较,若都不匹配,则P保留, 否则将抽取出来的元素和图 2-16的保留模板(六个)相比较,若与其中的 一个匹配,则保留P,否则应该将P删除。重复利用以上的操作,将所有图 像中的像素值进行比较直至不变为止。此算法是八连通的算法,基本都能够 保证单像素的宽度。但该算法却不能使分叉点处彻底的细化,同时也会产生 部分毛刺。Matlab程序见附录A。细化结果图如图2-18:图2-18细化图根据实验发现,该方法处理弓形指纹效果较好,对于环形或螺旋形指纹的中心区域时会出现较多的毛刺和断裂,如下图2-19,这是其的缺点之一,为了很好的使其有实际应用,有待改进。图2-19细化图本章通过对指纹原图像的分割,二值化,滤波和细化算法的分析比较,得出了一套比较实用和便捷的算法,并通过matlab仿真实现最终的结果,为后续的特征提取和匹配打下了基础。第 3 章 图像特征提取和特征匹配3.1 特征点提取(1)提取指纹的端点和交叉点 端点和交叉点均是指纹图像的两个细节特征, 同时在指纹识别的的过程 中起着重要的作用,因为识别的首要前提就是找到图像的所有端点和交叉 点。先通过一 p.m 函数对八个邻域的坐标位置进行定义,然后定义另一 point.m 函数来找出细化后指纹图像的所有端点及交叉点。将八邻域中的每个点依次两两相减并取其绝对值, 后将所有结果加起来, 因为端点处是两个点,即和为 2 时细化图像有端点,和为 6 时图像特征为交 叉点。运行完上面的 p.m 和 point.m 函数的程序后, 能把细化图像的的端点和交 叉点全部找出。在定义函数的程序中有数组txy,其中t为横坐标,x为纵坐 标,y为2时为端点,y为6时为交叉点。(2)去除图像边缘的端点 可以看出,指纹图像细化的边缘,由于采集仪器不同的关系,因此不可 避免的会多出很多的端点,这些端点不仅增加了后续的工作量,还可能导致 识别过程中产生错误,所以要把这些边缘的端点都去除, 在matlab中这些操 作都可以采用一函数来实现,本实验中设计了一 cut函数来进行处理。3.2 找出特征点设置三个函数来找出图像的特征点:( 1)single_point 函数经过去除边缘端点的操作后进一步减少了指纹细化图像中的端点和交叉 点的个数。下面就需要找出一些在细化图像中比较独特的端点来作为识别的 特征点。在一幅细化的指纹图像中,如果在一个像素(该像素为端点)的周 围半径为 r(r 为像素的个数)的圆内没有任何的端点或者交叉点,那么随着 r 的逐渐增大,这样的点就会越来越少,因此该点也就越来越独特。于是我 们设计了一 single_point 函数来找出这样独特的点。( 2)walk 函数为了进一步找出特征点,我们还需定义一 walk 函数,它的主要作用就 是判断某一端点在 num 的距离内是否还有其他的端点。(3)lastl 函数single_point函数和walk函数都是找细化图像特征点的函数,因此可以设 计另一个新的lastl函数,通过执行pxy3,error2=last1(thin,r,txy,num)可以找出一端点以r为半径的像素内的任何端点和交叉点且沿着脊线走向的 num内没有任何的其他端点和交叉点。3.3 特征点匹配 由上文的函数可知,已经找出了指纹细化图像中的特征点,并画出了一 段独特的脊线,在图像中用红色来标示。下面就是指纹匹配12的问题了。在此我们设置了三层匹配。( 1 )脊线长度匹配 对于上面的函数即可找出细化图像中的特征点和一段脊线, 沿着该段脊 线走向,每隔五个像素测量一下,看到到原始端点的距离,此段距离由一dista nee函数得到。函数结果会得到一数组(内有脊线的长度信息) 。如果两幅指纹细化图 像中的纹路是相同的,贝卩它们就包含相同的端点和交叉点及用dista nee函数找出的相同的一段脊, 则这两个指纹图像中的长度数组对应的位置比例会基 本相等(我们选择的指纹图像大小基本相等, 因此该比例选 1),因此函数最 终定义了一个数f=(sum(abs(d1./d2)-1),其中若f的值越接近于0,这两幅 图像的匹配度就越高,在一定范围的阈值内我们可以认定为匹配。(2)三角形边长匹配找到一个指纹细化图像的特征点后, 可以找出距离这个端点距离最近的 两个端点或者交叉点,与这个指纹图像细化的特征点构成一个三角形,若两 幅图像中的边长比例基本相等 (原理同上,也选 1),贝说明这两幅图像匹配, 越接近于 1 说明这两幅指纹图像越匹配。其中设置一 find_point 函数来找出 距离最近的端点或交叉点。函数最后定义了一个数ff=(sum(abs(dd1./dd2)-1),因此ff值越接近于 0,这两幅指纹图像的匹配度越高,在一定范围的阈值内我们可以认定为匹 配。( 3)点类型匹配找到一个指纹细化图像的特征点后, 在该端点周围找到四十个端点或者 交叉点,统计在这四十个特征点中端点的个数和交叉点的个数。若有两幅指 纹细化图像中的端点所占的比例近似相同,贝两幅图像相匹配,越近似,贝 越相同。函数最终定义了一个数fff=abs(f11-f21)/(f11+f12),所以fff值越接近于0这两幅指纹图像的匹配度就会越高。我们也设定一阈值,在此阈值内 都可以认定为匹配。本文中取r=8, num=60,经过试验,得到f的阈值为0.5, ff的阈值为1.5, fff的阈值为0.2。即两幅图像的f,ff,fff若均小于阈值,则两幅图匹配;若三 个值中有至少一个值大于阈值,则不匹配。验证如下:一、选择两幅图:zhiwe n.bmp和zhiwe n5.bmp来验证0.28410,50700.0976Elapsed time is12.514525 seconds.图3-1(a)输出的时间图3-1( b) 特征匹配通过以上的f,ff,fff和阈值的比较说明zhiwen.bmp和zhiwen5.bmp匹配,为同一手指的指纹,匹配时间为12.514525秒。二、选择两幅图:zhiwe n.bmp和zhiwe n2.bmp来验证fff 二0.26967. 96570,2439Elapsed time is 12. 72&8F1 seconds.图3-2 (a)输出的时间图3-2 (b)特征匹配通过以上的f,ff ,fff和阈值的比较说明zhiwen.bmp和zhiwen2.bmp不匹配,为同一手指的指纹,匹配时间为12.728871秒。总结与展望该论文是在前人研究的基础上,参阅了部分资料,并在刘文博老师的指 导下认真完成的, 文中主要对指纹图像预处理的各个步骤做了较为详细的讨 论,并用 matlab 加以仿真和验证。论文中的算法基本上能够实现指纹识别的预期目的, 但是由于毕业设计 的时间较短以及我的知识面的限制,有许多问题的考虑还不全面,有待于进本文中主要对图像预处理进行了分析比较, 最后得到了一套比较合适的 算法,但通过实验验证可发现比对时间比较长,有待于进一步改进。在指纹 特征点的提取和匹配的过程中,均设置了一个函数来实现算法,实现的过程 的时间也相对较长,也可以用其他的语言来实现。致谢时光如梭,随着毕业论文的完成,我的大学生涯也就要结束。回想我做 毕业设计这段时间里,我的指导老师刘文博,对我耐心指导,严格要求,精 益求精,在此致以最深的谢意。在撰写论文的这段时间里,我学到了很多我 之前不懂的一些专业知识和技能,锻炼了我思考能力和操作能力,对我大学 四年的学习有了一个比较全面系统的整理。在毕业设计的完成过程中,室友和班上的所有同学,他们给我提供了有 益的帮助、良好的学习和生活环境,非常感谢他们。参考文献1 李俊山,李旭 . 数字图像处理 . 北京:清华大学出版社, 2007.42 阮秋琦. 数字图像处理学 . 北京:电子工业出版社, 2001.13 祝恩,版建平等 . 自动指纹识别技术 . 长沙:国防科技大学出版社, 2006.54 查振元、朱华炳电子门禁系统组成 . 机电产品开发与创新 .2003,(2):13145 胡士斌, 杨卫平. 指纹图像复合分割算法研究 J. 计算机工程与应用 , 2006,40(12): 71273.6 李建华,马小妹,郭成安,基于方向图的动态闽值指纹图像二值化方法 . 大连理工大 学学报. 2002,42(5):626-6287 家锋,唐降龙,赵泉.一个基于特征点匹配的联机指纹鉴别系统 . 哈尔滨工业大学学报, 2002,34(1):132-1368 刘文星,王肇圻,母国光脊线跟踪及其在细化指纹后处理中的应用J 光电子,激光, 2002, 13(2):1841879 王玮著,自动指纹识别系统关键技术研究, 重庆,重庆大学光电工程学院, 2007, 80-8210 罗希平, 田捷.自动指纹识别的图像增强和细节匹配算法 . 软件学报, 2002-5, 13(5): 946-95611 姜腾云指纹识别门禁系统的 matlab 仿真实现江门:五邑大学, 201112 乔治宏. 基于细节结构的指纹特征提取及匹配算法研究 . 北京:北京工业大学硕士学 位论文, 2004-5.附录 A 预处理代码function img = tuxiangyuchuli(path) M=0;var=0;I=double(imread(path); m,n,p=size(I); for x=1:mfor y=1:n M=M+I(x,y);end end M1=M/(m*n); for x=1:mfor y=1:n var=var+(l(x,y)-M1)42;end end var1=var/(m*n); for x=1:mfor y=1:n if l(x,y)=M1 l(x,y)=150+sqrt(2000*(l(x,y)-M1)/var1);elsel(x,y)=150-sqrt(2000*(M1-l(x,y)/var1);endendendfigure, imshow(l(:,:,3)./max(max(l(:,:,3);title( 归一化 ) %* M =3;%3*3H = m/M; L= n/M; aveg1=zeros(H,L);var1=zeros(H,L);%计算每一块的平均值for x=1:H;for y=1:L; aveg=0;var=0; for i=1:M;for j=1:M; aveg=l(i+(x-1)*M,j+(y-1)*M)+aveg;end end aveg1(x,y)=aveg/(M*M);%计算每一块的方差for i=1:M;for j=1:M;var=(l(i+(x-1)*M,j+(y-1)*M)-aveg1(x,y)42+var;endendvar1(x,y)=var/(M*M);endendGmean=0;Vmean=0;for x=1:Hfor y=1:LGmean=Gmean+aveg1(x,y);Vmean=Vmean+var1(x,y);endendGmean1=Gmean/(H*L);%所有块的平均值Vmean1=Vmean/(H*L);%所有块的方差gtemp=0;gtotle=0;vtotle=0;vtemp=0;for x=1:Hfor y=1:Lif Gmean1aveg1(x,y) gtemp=gtemp+1; gtotle=gtotle+aveg1(x,y);endif Vmean1var1(x,y) vtemp=vtemp+1; vtotle=vtotle+var1(x,y);endendend G1=gtotle/gtemp;V1=vtotle/vtemp; gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0;for x=1:Hfor y=1:Lif G1aveg1(x,y) gtemp1=gtemp1-1; gtotle1=gtotle1+aveg1(x,y);endif 0var1(x,y)G2 & var1(x,y)V2 e(x,y)=1;endif aveg1(x,y) G1-100 & var1(x,y) V2 e(x,y)=1;endendendfor x=2:H-1for y=2:L-1 if e(x,y)=1 if e(x-1,y) + e(x-1,y+1) +e(x,y+1) + e(x+1,y+1) + e(x+1,y) + e(x+1,y-1) + e(x,y-1) + e(x-1,y-1) =4 e(x,y)=0;endendendendIcc = ones(m,n);for x=1:Hfor y=1:L if e(x,y)=1 for i=1:M for j=1:M I(i+(x-1)*M,j+(y-1)*M)=G1; Icc(i+(x-1)*M,j+(y-1)*M)=0; end end endendendfigure, imshow(I(:,:,3)./max(max(I(:,:,3);title( 分割 ); %* temp=(1/9)*1 1 1;1 1 1;1 1 1; % 模板系数、均值滤波 Im=double(I);In=zeros(m,n); for a=2:m-1;for b=2:n-1;In(a,b)=Im(a-1,b-1)*temp(1,1)+Im(a-1,b)*temp(1,2)+Im(a-1,b+1)*temp(1,3)+Im(a,b-1)*temp( 2,1)+Im(a,b)*temp(2,2)+Im(a,b+1)*temp(2,3)+Im(a+1,b-1)*temp(3,1)+Im(a+1,b)*temp(3,2)+ Im(a+1,b+1)*temp(3,3);endendI=In;Im=zeros(m,n);for x=5:m-5;for y=5:n-5;sum1=I(x,y-4)+I(x,y-2)+I(x,y+2)+I(x,y+4);sum2=I(x-2,y+4)+I(x-1,y+2)+I(x+1,y-2)+I(x+2,y-4);sum3=I(x-2,y+2)+I(x-4,y+4)+I(x+2,y-2)+I(x+4,y-4);sum4=I(x-2,y+1)+I(x-4,y+2)+I(x+2,y-1)+I(x+4,y-2);sum5=I(x-2,y)+I(x-4,y)+I(x+2,y)+I(x+4,y);sum6=I(x-4,y-2)+I(x-2,y-1)+I(x+2,y+1)+I(x+4,y+2);sum7=I(x-4,y-4)+I(x-2,y-2)+I(x+2,y+2)+I(x+4,y+4);sum8=I(x-2,y-4)+I(x-1,y-2)+I(x+1,y+2)+I(x+2,y+4); sumi=sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8; summax=max(sumi);summin=min(sumi);summ=sum(sumi);b=summ/8;if (sum
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!