I
第1章绪论………………………………………………………………………………1
研究1.1研究的意义………………………………………………………………1
1.2指纹识别技术………………………………………………………………1
1.2.1指纹识别技术发展现状…………………………………………………………2
1.2.2指纹识别技术特点……………………………………………………………3
1.3本论文的工作………………………………………………………………4
第2章指纹图像的分割…………………………………………………5
2.1指纹图像分割概述……………………………………………………………5
2.2均值方差法……………………………………………………………6
2.3仿真结果与结论……………………………………………………………7
第3章指纹图像的细化…………………………………………………9
3.1指纹图像细化的预处理……………………………………………………………9
3.2指纹图像细化方法介绍……………………………………………………………9
3.3仿真结果与结论……………………………………………………………11
第4章指纹图像的特征提取…………………………………………………13
4.1指纹图像特征提取概述……………………………………………………………13
4.2特征提取和去伪特征……………………………………………………………14
4.3仿真实验与结论……………………………………………………………15
第5章指纹图像的匹配…………………………………………………16
5.1指纹图像匹配方法……………………………………………………………16
5.2本论文匹配方法介绍……………………………………………………………17
第6章总结和展望…………………………………………………20
参考文献……………………………………………………………21
致谢…………………………………………………………………22
II
附录…………………………………………………………………23
浙江理工大学信息电子学院本科毕业论文(设计)
1
第1章绪论
1.1研究的背景及意义
科学技术的迅猛发展为人类的生产生活带来了极大的便利,大大地推动了现在社
会的进步和发展。在网络化时代的今天,我们每个人都拥有大量的认证密码,比如开
机密码、邮箱密码、银行密码、论坛登陆密码等等;并配备了各种钥匙,如门锁钥匙,
汽车钥匙,保险柜钥匙等。这些都是传统的安全系统所采用的方式,随着社会的发展,
其安全性越来越脆弱。而我们的生活随时都需要进行个人身份的确认和权限的认定。
指纹特征是人终生不变的特征之一,而且不同人的指纹特征相同的可能性几乎为
零。人体指纹含有天然的密码信息,其具有作为密码信息必须具备的三个重要性质:
①广泛性,指每一个正常人都有指纹。
②唯一性,指每一个人的指纹都不同。
③终生不变性,指非意外事故指纹终身不变。
因此,指纹识别技术,作为一种可靠的生物识别技术[1],受到了人们的重视。尽
管人们已经对自动指纹识别技术作了深入广泛的研究,指纹识别技术也获得了不少应
用,但是指纹识别的应用在目前并没有获得普及,这主要是因为指纹识别在识别准确
性和识别速度方面还远远不能满足很多实际应用的要求。
这就要求研究指纹识别环节中若干问题,这对于问题的解决很有意义。
1.2指纹识别技术
相对于其它生物识别认证技术而言,自动指纹识别是一种更为理想的身份确认技
术,因为指纹相对于其它几种生物特征具有以下一些独特的性质:
(1)互异性;世界上两个指纹完全相同的概率小于10-9,几乎为零。
(2)不变性;人的指纹特征不随年龄的增长和胖瘦或其他情况的改变而改变。
(3)具有和主体永不分离性;这样对主体身份的识别更具真实性。
(4)指纹的使用比起其它证卡来说更快捷、安全准确、无干扰,可实现快速登录
注册。
(5)一个人的十指指纹皆不相同,这样可以方便地利用多个指纹构成多重口令,
指纹识别中若干关键问题研究
2
提高系统的安全性。
(6)指纹识别中使用的模板并非最初的指纹图,而是由指纹图中提取的关键特征,
这样使系统对模板库的存储量较小。另外,对输入的指纹图提取关键特征后,可以大
大减少网络传输的负担,便于实现异地确认,支持计算机的网络功能。
1.2.1指纹识别技术发展现状
指纹识别算法的研究方向主要分为:基于图像的识别算法和基于特征的识别算
法。
基于图像的识别算法认为,指纹图像的频域和空域信息可以用来唯一表示并识别
不同的指纹[2]。它是一种使用全局信息进行识别的方法,例如使用指纹图像的Fourier
频谱来表示和识别指纹。这类算法的问题在于图像特征难以定义和匹配,因此算法的
拒识率和误识率较高。
基于特征的指纹识别算法是找到并比对指纹的特征[3]。指纹特征的复杂度足以提
供用于鉴别的足够特征。目前大多数的自动指纹识别系统使用的都是这类算法。指纹
特征多种多样,有特征点、奇异点、域方向图、脊线数目,甚至脊线线型等。对应的
匹配方法可以分为:基于点模式的匹配,基于脊线的匹配,基于纹理的匹配以及多种
细节特征混合的匹配方法。
大多数基于特征的识别算法专注于脊线上的末梢点和分叉点,该方法根据各个特
征点的位置和方向来表示和区分指纹,从而使指纹识别问题转化为判断两个特征点集
间的最大相似度(最大重合度)的问题。提取该细节特征有多种方法:基于灰度指纹图
像直接提取,基于二值图像的特征提取,基于细化图像的特征提取。
目前许多公司和研究视梅在指纹识别技术领域都取得了突破性的进展,推出许多
指纹识别与传统IT技术完美结合的应用产品,这些产品已经被越来越多的用户所认
可。中科院自动化所智能生物信怠系统研究组和北京数字指通软件技术有限公司对自
动指纹识别技术进行了长期的理论研究和应用系统开发,指纹图像的识别准确率和识
别速度已达到国际先进水平。另外,一些公司和机构结合社会应用的实际需求,开发
了各种类型的具有独立知识产权的嵌入式指纹识别模块、指纹应用系统软件等,用户
反映良好。指纹识别技术多用于对安全性要求比较高的领域,丽在商务移动办公领域
颇其建树的富圭通、三星及lBM等国际知名品牌都拥有技术与应用较为成熟的指纹
识别系统[4]。
与国外相比,我国在自动指纹识别技术的研究水平上还存在一定的差距。主要表
浙江理工大学信息电子学院本科毕业论文(设计)
3
现在:(1)指纹录入设备的质量还不太过关:(2)自动指纹识别算法研究水平还有待提
高,在应用上的表现为产品适应性和易用性较差,对干、湿一些的指纹往往不能正确
区别,对指纹录入时的旋转、平移比较敏感。
1.2.2指纹识别技术特点
指纹特征是人终生不变的特征之一,而且不同人的指纹特征相同的可能性几乎为
零。人体指纹含有天然的密码信息,其具有作为密码信息必须具备的三个重要性质:
①广泛性,指每一个正常的人都有指纹。
②唯一性,指每一个人的指纹都不同。指纹的细节由细微纹点和纹线的起点、终
点、分叉等组成。正是这些无穷无尽的细节特征组合构成了指纹的唯一性.事实上,
甚至包括双胞胎,世界上两个指纹相同的概率小于1/109,几乎为零,这就构成了
指纹的第一大特点。
③终生不变性,指纹终身不变即指纹的图案永远不会改变,从人的出现到死后的
分解为止(除非指纹受到伤害)。
④指纹与主体的不可分离性:即指纹不存在丢失、遗忘、被窃取的可能。
指纹的使用比起其它证卡来说更快捷、安全、准确、无干扰,可实现快速登录注
册,系统兼容性好,也就是说可以独立或者通过联网构成系统并且很容易并入各类证
卡和定义识别系统中。因此,指纹识别技术的应用范围极广。
在实际应用中,有相当一部分要处理的指纹图像的质量是比较差的。指纹识别系
统主要包括4部分:指纹图像采集,指纹图像预处理,指纹特征提取和指纹特征匹配
[5]。论文涉及指纹的图像分割、细化和匹配。就现有文献和产品来看,对低质量的指
纹图像的处理效果还远不能令人满意。要想使设计的细节特征提取算法能够对低质量
指纹图像也能可靠工作,目前看来还是一件难度很大的事情。对于质量很差的图像,
如果不经过特殊的增强处理,是很难正确地进行特征提取的。
指纹匹配算法的性能主要决定于所提取到的特征点的数目、位置和相互关系的可
靠性。要想设计一个对较多真正特征点缺失、较多伪特征点出现和较大形变均不敏感
的指纹匹配算法,也是一件十分困难的事。
计算复杂性是自动指纹识别技术中一个重要的研究课题。实际应用要求最好自动
指纹识别系统能对识别任务实时做出响应,而让指纹匹配算法同时达到高速度和高准
确率也是一个难题。
指纹识别中若干关键问题研究
4
1.3本论文的内容及安排
本文以研究指纹识别中指纹图像分割、细化、特征提取、匹配等若干问题为研究
主体,针对指纹识别技术中分割、细化和匹配进行了仿真和修正。其中分割部分采用
了方差均值的方法,细化选取了一种伪特征较少的模板,匹配时以分叉点和端点信息
进行匹配。具体的章节和各章的内容安排如下:
第一章:在介绍本论文的研究意义,在指纹识别技术的现状和特点的基础上,确
定了本文所做的主要工作。
第二章:为后续的研究工作奠定基础,本章介绍了均值方差的基础知识和基本理
论以及仿真中具体的分割运用算法。
第三章:介绍了指纹图像细化的方法并仿真得到结果。
第四章:主要介绍了指纹图像细化后的特征提取,需要哪些特征,去除哪些伪特
征,以方便和正确地进行匹配工作。
第五章:介绍了指纹图像匹配的概念、匹配问题的困难所在和常用方法,给出了
一种修改基础上验证用的匹配方法。
第六章:总结本文所取得的一些研究成果,并对课题发展进行了展望。
浙江理工大学信息电子学院本科毕业论文(设计)
5
第2章指纹图像的分割
2.1指纹图像分割概述
在指纹识别系统中,指纹图像分割是图像预处理的一部分。指纹分割的最基本的
依据是图像某些特征和特征集合。图像特征是指纹图像的固有属性,如灰度值,邻域关
系,纹线的扭曲程度等。特征集合则是几种的结合。通过提取图像特征,可将原始图像
映射到特征空间,使图像特征在特征空间中呈现一定的分布[6]。因此根据以上的的灰度
值领域关系,纹线的扭曲程度,指纹图像分割大致分为三类:基于像素的图像分割,
基于块特征的图像分割以及基于全局的图像分割。
基于像素的指纹图像分割中目前流行多尺度小波变换和阈值法。小波变换和
傅里叶变换的出发点都是将信号表示成基函数的线性组合。所不同的是傅里叶变
换采用时间属于(一∞,+∞)的谐波函数
)exp(inx
作为基函数,而小波变换的基函数
是具有紧支集的母函数(t),通过对母函数(t)进行伸缩和平移得到一个小波序
列:
a
bt
a
t
ba
1
,
Rba,
;
0a
式中a为伸缩因子,b为平移因子。
对于任意函数RL2tf的连续小波变换[7]:公式(1)为变换公式,公式(2)为
重构公式。
dt
a
bt
tfafba
Rbaf
*
2
1
,
,,W(1)
dadb
a
bt
baW
af
),(
1
C
1
2
--
(2)
计算机中的图像信息是以离散信号形式存放的,在信号处理中,特别是在数
字信号处理和数值计算等方面,为了计算机实现的方便,连续小波必须进行离散
化,而最基本的离散化方法就是二进制离散,一般将这种经过离散化的小波及其
变换叫做二进小波和二进变换。
小波变换的特点是压缩比高,压缩速度快,压缩后能保持信号与图象的特征
不变,且在传递中可以抗干扰。在指纹识别识别中使用小波变换有助于噪声的滤
除以及有利于检测奇异点。但是小波变换的明显缺点是它计算复杂,计算效果也
指纹识别中若干关键问题研究
6
取决于函数的选择。
另一种阈值分割就是简单地用一个或几个阈值将图像的灰度直方图分成几个
类,认为图像中灰度在同一个灰度类内的像素属同一物体。它是图像分割中最基
本的方法。其原理是先定一个阈值,大于此值为1,小于则认为为0;多阀值则可
以利用多维函数。此原理在匹配中也可以运用。其优点是计算简单,仅需比较灰
度值即可;运算效率较高,速度快;它的缺陷在于仅考虑图像的灰度信息,而忽
略了图像的空间信息,对于图像中不存在明显灰度差异或各物体的灰度值范围有
较大熏叠的图像分割问题难以得到准确的结果[8]。
代表块特征的指纹图像分割目前研究趋势为多种块基本特征如灰度均值、块
灰度方差[9]、块方向图等综合运用和重新定义块特征。其中块指的是将图像分个成
一个个小的图像块。图像均值就是对每一个单位块的灰度值取均值,方差则反映
该块中各点与均值的偏差性,方向[10]这可以很好的反映纹理的变化趋势。一般来
说,常见的方向场的计算分为掩模法和公式法两大类。LinHong等人开发的基于最
小均方估计算法,即公式法。
)1,1()1,(21,11,11,21,1,jiGjiGjiGjiGjiGjiGji
x
)1,1(),1(21,11,11,21,1,jiGjiGjiGjiGjiGjiGji
y
),(,2),(
2/
2/
2/
2/
vuvujir
wi
wi
wj
wj
x
(1)
2
2/
2/
2/
2/
2),(,),(vuvujir
wi
wi
wj
wj
y
(2)
它是利用正交坐标系下,原点到它们组成的坐标点的有向线段与X的正半轴的夹
角可来表示该子块的块方向。这种方法最大的优点是易实现,很好体现出纹理,
但缺点是对于变化太快的部分出错。此方法的实现是利用方向滤波器。
基于全局的图像分割则是根据情况特别是某些特殊场合的利用,如残缺指纹。全
局的图像分割可以是人工选定几个特定点后再根据全局的特点来处理,此法也可运用
于匹配。基于全局的指纹识别仍处于实验室探索阶段,应用领域中尚不广泛。
浙江理工大学信息电子学院本科毕业论文(设计)
7
2.2均值方差法
在图像分割概述中,已经提到基于块特征的指纹图像分割。在这部分将重点
介绍均值法差法的计算方法和在仿真中的运用。
该算法基于背景区灰度方差小,而指纹区方差大的思想,将指纹图像分成块,
计算每一块的方差,如果该块的方差小于阈值为背景,否则为前景。具体步骤分
以下三步:
(1)将低频图分成M×M大小的无重叠方块,方块的大小以一谷一脊为宜。
(2)计算出每一块的均值和方差。
设指纹图像I的大小为H×L,I(i,j)为像素点(i,j)的灰度,AVE和VAR分别为原指纹
图像的均值和方差,AVE和VAR可以通过公式(2.1)和(2.2)计算得到。
1-H
0
1
0
),(
LH
1
AVE
i
L
j
jiI
(2.1)
2
1-H
0
1
0
AVE-),(
LH
1
VAR)(
i
L
j
jiI
(2.2)
(3)如果计算得到的方差几乎接近于0就认为是背景,对于方差不为零的区域在进行阈
值分割算法,这种算法主要是根据计算得到的方差来决定其是否为背景区。
在使用方差均值法之前还要使用归一法将图变为低频图。归一化[11]的目的是
把不同原图像的对比度和灰度调整到一个固定的级别上,为后续处理提供一个较
为统一的图像规格。指纹图像的归一化公式如式(2.3)所示,当大于平均值时为加。
VAR
AVEyxIVAR
VAR
AVEyxIVAR
yx
2
0
0
2
0
0
)),((
AVE
)),((
AVE
),I(
(2.3)
其中
0
AVE和
0
VAR为期望的灰度均值和方差。
2.3仿真结果和结论
本实验基于2.0GHz的Pc机,Window7操作系统,MATLAB7.0的仿真软件环
境下。指纹来自于指纹数据库,为了验证这种分割方法的适用性,从数据库中挑选了
指纹识别中若干关键问题研究
8
2幅差异较大的指纹图像。仿真中归一化的参数
0
AVE取了150,
0
VAR取了100,
分割的区域大小M取了10。下面的图像为指纹图像归一化和分割结果。
(a)指纹原始图像(b)归一化处理图像(c)分割后图像
图2-1指纹1的处理结果
图a指纹原始图像图b归一化处理图像图c分割后图像
图2-2指纹2的处理结果
从图中可以看到用方差均值法分割既适用于比较圆滑的指纹,又适用纹线变
化很大的指纹图像。在归一化处理降频和通过区域均值方差的后得到的图像条纹
清晰,轮廓分明,对于后面的细化和匹配有很大的帮助。该方法快捷,损坏程度
低,缺点是计算有一定的复杂度,要通过2次方差均值来处理。
浙江理工大学信息电子学院本科毕业论文(设计)
9
第3章指纹图像的细化
3.1指纹图像细化的预处理
这部分预处理主要为二值化。由于指纹图像脊、谷相间,因此指纹图像的处理常
是将指纹图像二值化。灰度图像二值化是将灰度图变换为只有黑和白两种灰度的图
像。这样不仅可以压缩原指纹图像的数据量,而且也方便后面的细节特征的提取。灰
度图二值化的基本思想是选取适当的灰度阂值,将灰度图像转化为二值图像,阈值的
选择是关键,对于阈值的选择,有多种方法,如熵法,Ostu法等。根据是否将图像
分块处理,又分全局阈值算法和局部阈值算法两种,全局阈值算法是将整幅图像以一
个阈值处理,而局部阈值算法则把原图分成若干个子图,在每个子图中确定闽值,在
进行二值化,由于指纹图像在不同区域的亮度和对比度是有差别的,因而全局阈值算
法不适用。
灰度图二值化的基本思路是选取适当的灰度阈值,将灰度图像转化为二值图像。
一般的图像处理中的二值化算法主要是计算整幅图像的灰度平均值,然后将该值作为
门限,高于该门限的像素点就置1,反之置0。我们通过研究发现,这种方法虽然简
单,但是对噪声较大,图像质量不好的指纹会产生较大的二值化噪声。所以最好选用
局部阈值法作为二值化算法。
论文中采用了一种动态局部阈值,满足这种条件下的灰度值为128,不满足则灰
度值为255。再根据前面判断的是否为背景即Icc值的来修正Icc值:灰度值为128
且Icc为1时(非背景指纹纹线时),Icc值为0,像素值置为0。背景和灰度值为255
的纹线像素置为1,这做法的目的是去除不确切的点。此时背景为白,纹线为黑。
二值化后的图像中的点还要进行修改,修改条件为:当像素为1时,它周围点不
大于3个为像素1点则修改为0;当像素为0时,它周围不小于7个点为像素1的点,
则修改为1。这种修改是为了使图像连续圆滑。
3.2指纹图像细化方法计算
由于灰度过渡区[12]的存在,指纹细化是指纹图像预处理中的一个重要环节,因为
一般的特征提取都是在细化的基础上进行的,如果细化不好,将无法使用常规的特征
指纹识别中若干关键问题研究
10
提取算法提取细节特征信息[13]。细化可以便我们得到绞线的单像素的骨架。所谓“骨
架”,是指图像中央的骨骼部分,是描述图像几何及拓扑性质的重要方法之一。获取
一个图像骨架的过程通常称为对图像“细化”的过程。在文字识别、地质构造识别、
工业零件形状识别或图像理解中,先对被处理图像进行细化有助于突出形状特点和减
少冗余信息。
细化处理是指在指纹图像二值化以后,在不影响纹线连通性的基础上,删除纹线
的边缘像素,直到纹线为单像素宽为止。理想细化后的纹线骨架应该是原始纹线的中
间位置,并保持纹线的连通性、拓扑结构和细节特征。一种好的细化算法应该满足下
列条件[14]:
(1)收敛性:迭代必须是收敛的。
(2)连通性;不破坏纹线的连接性。
(3)拓扑性:不引起纹线的逐步吞食,保持原图像的基本结构特性。
(4)保持性:保护指纹的细节特征。
(5)细化性:骨架纹线的宽度为1个像素,即单像素宽。
(6)中轴性:骨架尽可能接近条纹中心线。
(7)快速性:算法简单,速度快。
已有的算法迭代按迭代方式的不同分为串行算法和并行算法。在串行细化算法
中,当前迭代的结果不仅取决于前一次的迭代迭代图像,而且与当前处理情况有关;
而在并行方式中,当前迭代仅仅是由前一次的迭代情况决定,串行细化算法的处理结
果依赖于对像素处理的先后顺序,因而像素点的消除或保留不可预测。并行细化算法
对图像进行细化时利用相同的条件同时检测所有像素点,其结果具有各向同性,因此
从算法原理上并行算法优于串行算法。由于并行细化算法具有快速而准确的特性,因
此他一直是人们研究的热点,并且相应的提出了许多并行细化算法,如OPTA细化算
法[15],R.W.Hall细化算法,Ronfeld细化算法,Zhang&Suen细化算以及ZR
细化算法等等。性能上这些算法各有所长。
不同的文献上有不同的关于细化方法,如王家隆等[16]以及王业琳等[17]的细化模
板。制约细化的直观表现在计算速度、毛刺和断点上。因而细化中选择一个好的模板
很关键。模板分为保留模板和消除模板,消除模板就是根据条件判定这点去除作为背
景的模板;保留模板则是根据条件判定这点保留作为前景的模板。这样就可以将较粗
的图像曲线细化成很细的以像素为单位的线,大大减少了图像的信息量,有利于匹配
浙江理工大学信息电子学院本科毕业论文(设计)
11
的高效进行。
本论文中采用了方法步骤如下:
(1)建立3维数组,第一组数据为预处理后的图像信息,定义每一个像素点它
周围点像素参数。
(2)对于满足6种情况的模板,赋值为2,其实为像素1情况。对于满足后六
种情况的模板赋值为3,别的情况点值不做改变。
(3)16种消去模板是在不满足上述情况下衍生的模板,对于满足这些模板的点
像素全为0,以上都未涉及的点不做改变。
(4)循环进行上述过程,到所有点值不改变为止,最多进行20次细化。
3.3仿真结果和结论
实验基于2.0GHz的Pc机,Window7操作系统,MATLAB7.0的仿真软件环境下,
先对分割好的图像进行二值化处理,简化后面的细化计算。细算中的模板在一个函数
中实现,细化结果如下图所示。
图a指纹分割图像图b指纹二值化图像图c指纹细化图像
图3-1指纹1的细化结果
图a指纹分割图像图b指纹二值化图像图c指纹细化图像
图3-2指纹2的细化结果
指纹识别中若干关键问题研究
12
从分割后的二值化处理图像中,我们可以看到,整个灰度变成了黑白的二值图像
图,图像的条纹比较清楚,它的实现有助于压缩数据量和细化的实现。
细化将黑白二值图像细化成了单个像素带宽的指纹图像,由于模板的选择不同,
上图中的细化图像一定程度上存在毛刺、分叉、断点等不理想的情况。所以在特征提
出前还需稍加处理,细化好的模板选择可以提高图片的质量和细化运算的速度。
当然,此次仿真的细化还有待改进。对于细化中出现的毛刺现象,要根据局部特
征来修改判定模板来决定这个点的像素,甚至可以减少模板的数量和判断次数,既简
化模板,又提高运算速度,这点还可以有很大的深入研究。
浙江理工大学信息电子学院本科毕业论文(设计)
13
第4章指纹图像的特征提取
4.1指纹特征提取概述
特征提取就是对细化后的指纹图像提取表示其特征的信息的操作。我们前面所叙
述的指纹图像预处理目的就是为指纹的特征提取和最终识别建立一个良好的基础,以
保证整个系统识别率比较高。对于自动指纹识别技术而言,选择一种合适的、能表达
指纹唯一性的特征量是非常关键的。一般说来,这种特征应有以下性质:
(1)单一性:要求这种特征能够充分体现指纹的唯一性。
(2)可测试性:适用于指纹匹配算法,便于在匹配算法中应用。
(3)紧凑性:要求提取的特征不应包含指纹唯一性以外的冗余信息,并且信息量要
尽量小,便于存储、管理和计算。
(4)鲁棒性:要求这种特征对噪声的存在与指纹形变不敏感。
对于特征点提取的常用算法很多,如:
(1)基于二值化的特征提取方法:这种算法对于预处理和增强后得指纹图像进行二值
化,然后再提取特征点。
(2)基于直接灰度的特征提取方法:这种方法直接从灰度图像出发,通过分析图像的
纹理属性和拓扑结构提取特征点。
(3)基于细化图像的特征提取方法:这种方法是将指纹图像处理后得到细化图像,通
过细化图像提取特征点。
为了比较两个指纹是否相同,需要从指纹图像中提取出能表示指纹唯一性的特
征。Galton提出的指纹细节点是人工指纹匹配中最常用的特征。指纹由脊线和谷线交
替构成,在大多数地方纹线连续且相互平行,而某些局部不连续的地方构成了细节点。
Galton[18]定义了4种细节点类型:分叉点,端点,环、岛,并指出细节点具有唯一性,
可以用于指纹匹配。
目前已定义的特征类型己达150多种,但是这些扩展的特征往往不易提取相互区
分,并且它们都可以由端点和分叉点的组合进行描述,这使得端点和分叉点成为最常
用的结构特征,也称为细节特征,它被认为是最稳定、最容易检查的,而且占全部特
征点的80%以上。提取出的特征点还必须经过伪特征点的去除,尽可能地去除掉由
于二值化、细化处理等过程引入的伪特征点。最后确定出特征点的类型、位置、方向。
指纹识别中若干关键问题研究
14
本章就是根据端点和分叉点是最常用的结构特征,提取满足一定条件接近的点,
再去除不是端点和分叉点的伪特征点,最终实现特征值的提取,有利于后面匹配的展
开。
4.2指纹特征提取和去伪特征
目前在细化二值图像中提取细节特征多是用8邻域法,该方法比较简单,在得到
可靠的细化二值图像后,只需要一个3×3的模板便可将端点和分叉点提取出来。对
于细化二值图像,像素点的灰度值只有2种情况。
在提取指纹图像的细节特征中,由于图像质量和噪声的干扰,存在大量的伪特征
点,实验表明一幅质量较差的图像在经过预处理,细节特征提取后可能产生多达一、
两万个细节特征点,其中包含了大量的伪特征点,这些伪特征点的存在,不但使匹配
的速度大大降低,还使指纹识别性能急剧下降,造成识别系统的拒真率和误识率的上
升,因此在进行指纹匹配之前,应对细节特征进行验证,尽可能将伪特征点去除,同
时保留真特征点。
去除伪特征点是特征提取要解决的一个重要问题。对整个图像进行特征提取后得
到的特征点并非全部都是真实的分叉点和端点,由于指纹质量,细化、特征提取过程
引入的噪声造成了很多伪特征点,特别是图像边缘有很多图像分割产生的边界伪端
点。
本章中将特征建立为一个3维数组,前两组用于记录端点和分叉点。第3足则专
门记录伪特征最终可以除去。端点和分叉点的判断都是运用了上述的8邻域法。其中
(1)端点的判断条件为:周围的8邻域两两相邻当且仅当存在2个不同值。此时的
处理为记录数组2,记录点的个数,并将该点记为0,而它的8邻域点记为1。
(2)分叉点的判断条件为:周围的8邻域两两相邻当且仅当存在6个不同值。此时
的处理为记录数组1,在上述基础上记录点的个数,并将该点记为0,而它的8邻域
点记为1。处理方式类同上面。
(3)伪特征的判断比较多,全部计入数组3。第一类:超出一定边界,仿真中用了17。
此时把它和周围8点记为0,并在上述基础上减去不是特征点的个数。第二类:对于
直线12点的和不超过1的点也被视为伪特征点,处理方式类同。第三类为断点:在
上述的范围内,特征值为2。此时在更小12的上半范围或下半范围,特征仍为2则
浙江理工大学信息电子学院本科毕业论文(设计)
15
认为为断点。处理方式为把它和周围8点置为0,在上述基础上减去2倍的断点数。
第四类为毛刺,毛刺的判断类似于短点。因为指纹变化多的部分为中间,所以处理的
范围比断点来的范围小,并且在特征值为2的情况下仅仅是缩小范围再次判断特征
值,这点就不相同了。毛刺的处理方式也类同断点。第五类为小桥。小桥的判断条件
为:10范围内特征值为1,6的上半范围或下半范围特征值仍为1。此时该点则被视为
小桥。小桥处理方式类同断点和毛刺。
4.3仿真结果和结论
实验基于2.0GHz的Pc机,Window7操作系统,MATLAB7.0的仿真软件环境
下,根据上部分的判断方法决定的特征点和伪特征点,代码运行显示结果如下。
图a指纹1判断点图b指纹2判断点
图4-1通过判断后得到的特征点分布图
这个特征点分布结果图包含了特征点和伪特征点。在匹配前还需对毛刺、小桥等
伪特征点加以识别和处理,这样有助于后面匹配的进行,使匹配更加精确无误和快速。
对于特征点和伪特征点的判断方法还有很多,端点判断和分叉点判断属于比较多的特
征点判断,伪特征点也还有别的种类,短线之类也属于处理后出现的伪特征,本仿真
中没有对此作出处理。在上述基础上也可以根据特征基本构造出相似原图像。
指纹识别中若干关键问题研究
16
第5章指纹图像的匹配
5.1指纹图像匹配方法
指纹匹配要解决的是对两幅给定指纹图像的特征模式进行比对,判断这两幅图像
是否来自同一个人的同一手指。指纹匹配是自动指纹识别的最后一步,也是非常关键
的一步。
指纹图像匹配方面,主要有基于图像,脊线结构和特征点的方法。基于特征点的
匹配算法具有简单、快速、鲁棒性等优点。目前最为常用的方法是FBI提出的细节点
坐标模型来做细节匹配。它利用脊线上的端点和分叉点这两种关键点来鉴定指纹。通
过将细节点表示为点模式,一个指纹识别问题可以转化为一个点模式匹配问题。点匹
配算法是通过某些变换,如平移变换、旋转变化、伸缩变换,可以把两个点集中的对
应点匹配起来。对于基于细节点的匹配思路大体分两种:基于直角坐标系的特征识别
和基于极坐标系的特征识别[19]。
点模式匹配[20]将注册指纹和待识指纹的特征点定义为两个点集和P和Q通过平
移和旋转使得两个点集重合点数最多。点模式匹配是著名的数学难题。目前的指纹识
别系统主要采用基于节点的匹配方法,即点模式匹配。从模板指纹和输入指纹中选取
一个节点作为参考节点对,在进行节点匹配时先利用基准点将指纹对齐,然后再评估
其它节点的匹配程度。很多情况下选用图片的中心点。当然,他所带来的难题有:
(1)如何快速找到基准点把两幅指纹对齐。
(2)图片A中有图片B中不存在的点,集合B中也有图片A中不存在的点,匹配
的时候如何处理这些点。
(3)由于指纹存在变形位移,任何一对匹配点之间都不是绝对相等,而是存在一
定的差距。设计算法的时候,必须要有一定的容错能力。
(4)最终得到的是两幅指纹的相似度,怎么确定相似度的计算方式。
另外,计算匹配的时间即效率性也很重要。参考点在指纹图像的识别中是也至关
重要的。能获得参考点表明从被识别图像中获得的任意比特流与登记图像中获得的比
特流相近,则有可能得出两图像相同的结果;没有参考点表明被识别图像完全是另一
不同图像。
浙江理工大学信息电子学院本科毕业论文(设计)
17
5.2本论文匹配方法介绍
针对上述中提及的问题,本论文采用了两种匹配方式,第一种为主流的点模匹配
法,第二种则是较简单的FFT卷积判断法。
本论文中,首先采用了在原图基础上修改参数值来验证的方法。这种方法将原特
征点的相对距离进行修改,使得各个特征点之间的相对距离产生差异。在找到核心点
后,比较它们相对距离的差异,对于满足一定值的点视为可积点。最后判断可积点的
个数和相对值。当它们个数满足一定条件时即为匹配成功,不满足视为不匹配。匹配
与否用success值返回。返回1说明匹配成功,返回0则匹配失败。
本论文还参考了一种匹配方式,它先读取所有的数据库,库的大小可自己选择。
然后录用需要辨别的指纹图像,滤波增强去噪后,找到它们的中心点,依次与数据库
图像进行二维FFT卷积,然后判断出数据库中哪幅图片与录用图片最相似,并返回
它们的差异长度值。这种方法简单明了,缺点在于计算量比较大,需要较久的计算时
间。为了验证这种匹配方法的可用性,这里特地选取了30张图片做指纹图片数据库,
目标图片为数据库某图片稍加修改后的图片。如果可行,则此匹配法能找到最相近的
图片代号并显示出它们的距离。以下为部分数据库图片:
图5-1数据库中其中6张图
指纹识别中若干关键问题研究
18
图a库中第13号原图图b库中第13号修改图
图5-2数据库中理想会配对的图
图5-3指纹匹配程序模块
图5-4指纹匹配结果
以上结果论证了该指纹匹配的实用性。FFT卷积的方法能从多幅数据库的指纹图
片中挑选出与当前输入图片最相近的指纹,即使它的图像有所残缺,也不大会影响它
的判断和距离的计算。
这两种方法都很好地解决了找到基准点,容错性和相似度的问题。两种方法都以
浙江理工大学信息电子学院本科毕业论文(设计)
19
中心点为基准点。第一种方法的点判断条件本身就是一个人为的容错估计值,很小的
出错不会影响最终的匹配结果;第二种方法中的卷积值也存在一定限定值,具有容错
性。相似度的计算,方法一以满足特征点的相对距离差距不大的点的个数为相似依据;
方法二以卷积值的大小来判断图像的相似性,并计算图像的相似距离。方法一处理信
息少,虽然要一定的预处理,但快捷高效,出错小,适合一对一匹配。方法二对图像
的预处理要求不高,方法简单,但计算复杂,适合一对多的检索性匹配。
指纹识别中若干关键问题研究
20
第6章总结和展望
作为一种可靠的生物识别技术,指纹识别技术受到了广泛关注,开发高效可靠的
指纹图像识别算法不但具有重要的理论意义,而且具有很高的实用价值。本文针对指
纹图像的特性,将均值方差法、模板细化、点模匹配应用于指纹识别技术,以改善指
纹识别算法的性能。主要研究内容如下:
(1)综合分析了指纹分割目前主流的三种趋势,选择了基于区域特征的均值方
差法并用matlab语言来对指纹图像进行分割。分割前还对图像进行低频归一化处理。
(2)对分割好的图像进行了二值化处理,使得细化的信息量大大减少。选用了
一种比较精确的模板细化,得到了指纹细化后比较清晰的图像。
(3)对细化后的图像进行特征提取,其中分叉点和端点视为特征点,小桥、边
界、毛刺视为伪特征点,对他们进行加以区分和提取以进行匹配。
(4)在上述的特征点的部分选用了点模匹配,以特征点满足相对距离的个数和
相对值为依据判断是否匹配。此外,还介绍了一种滤波卷积的FFT卷积匹配,适合
检索匹配。
本文由于时间上的限制,在实现细化和匹配的基础上没有能够对细化和匹配算法
进行更深入的改进研究,是一个缺憾。如何有效的对指纹图像的分割细化的不足之处
进行弥补,对匹配算法改进效率以及将指纹识别技术与在实践中结合起来应该是今后
开展工作的方向。
浙江理工大学信息电子学院本科毕业论文(设计)
21
参考文献
[1]王崇文,李见为,周宏文.指纹识别系统的设计与实现[J].计算机应用,2001,21(12):23—25
[2]icationofstochasticlanguagestofingerpatternrecognition[J].Pattern
recognition,1976,12:173-179
[3]谢立锋,陈灵枭.浅谈指纹识别基本原理[J].技术与市场,2008.1:44-45
[4]耿德英,陈志敏,陈梅琴.图像处理在指纹识别中实践[J].西昌学院学报,2009.32(4):72-74
[5]刘明生,吴小培,项明.一种基于指纹图像特征的图像分割算法[J].电子测量技术第32
卷,2009.8:92-94
[6]郭文鹃,杨公平,董晋利.指纹图像分割方法综述[J].山东大学学报,2010.45(7):94-100
[7]高月红.灰度图像分割算法的研究[J].科技信息,2009年27期:17-18
[8]郭丹颖,吴成东,曲道奎.小波变换理论应用进展[J].信息与控制,2004.33(1):67-71
[veFloworientationBdFeatureExtractioninFingerpfint
lmages[J].PattemRecognition,1995,28(11):1657-1672
[10]李晨丹,徐进.指纹图像预处理和特征提取算法的Matlab实现[J].计算机工程与科
学,2009.31(7):61-64
[11]温苗利,梁彦等.基于GaborN数的小波域指纹图像增强算法[J].计算机应用,2006,20(9):68-74
[12]GerbrandsJJ,SegmengtationofNoisyImages[D],DelftUniversityofTechnology,1988
[13]田捷,陈新建,张阳阳.指纹识别技术的新进展[J].自然科学进展,2006,16(4):400-408
[14]王业琳,宁新宝,尹义龙.指纹图像细化算法的研究[J].南京大学学报:自然科学
版,2003,39(4):469-475
[15]赵磊,陈琼,陈中.一种新的改进OPTA细化算法[J].计算机应用,2008,28(10):2639-2642
[16]KASSM,WITKINA,TERZOPOULOSD.Snake:Activecontourmodels[J].InternationalJournalof
ComputerVision,1988,1(4):32l一331
[17]MORTENSENEN,igentscissorsforimagecomposition[J].Proceedingsof
k,NY,USA:ACM,1995,8:191—198
[18]张雄,贺贵明,一种指纹宏观曲率特征提取算法[D].武汉大学软件工程国家重点实验室,2002,11
[19]ttemMatchingbyRelaxation[J].PattemRecogition,1993,12(2):269-275
[20]A.HrechakandJ.Mchugh.Automatedfingerprintrecognitionusingstructuralmatching[J].Patern
Recognition,1990,23(8):893—904
指纹识别中若干关键问题研究
22
致谢
经过半年的材料准备、开题、论文写作及修改,我的毕业论文终于定稿。在论文
完成前后,我的心情波动较大。从论文的选题、资料的收集到论文的撰写编排整个过
程中,我有来自各方面的帮助。在这个写作过程中,才发现要感谢的人真的很多。
首先,我要感谢我的毕业设计指导老师周老师。我在选题及研究过程中,得到周
老师的悉心指导。周老师多次开会讨论研究进程,帮助我开拓研究思路,精心点拨。
对论文中出现的许多问题及时当面沟通,悉心地指导我在论文问题的解决思路,经过
反复修改,论文终于得以定稿。周老师一丝不苟的作风,严谨求实的态度,踏踏实实
的精神,热情宽容的态度让我时刻想着要尽快完成自己的论文早日毕业。
四年寒窗,所收获的不仅仅是愈加丰厚的知识,更重要的是在阅读、实践中所培
养的思维方式、表达能力和广阔视野。很庆幸这些年来我遇到了许多恩师益友,无论
在学习上、生活上都给予了我无私的帮助和热心的照顾。在此,衷心的感谢他们。
在论文的撰写和资料搜集期间,前人的资料对我提供了莫大的帮助,这里感谢设
计中被我引用或参考的论著的作者。
感谢对我论文进行评审的各位老师,感谢对论文的指导和提出的宝贵意见。
我还要感谢我的父母,给予我生命并竭尽全力给予了我接受教育的机会。
最后,再次感谢所有关心我、帮助过我的老师、同学、朋友和亲人。他们也在我
写作期间或多或少的帮过我的忙。
浙江理工大学信息电子学院本科毕业论文(设计)
23
附录
1、主扫描程序
clc
clearall
cloall
originI=imread('');
[m,n,s]=size(originI);
I=originI;
ifs==3
I=rgb2gray(originI);
end
I=double(I);
figure,imshow(uint8(I))
tic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%归一化
M=0;var=0;
forx=1:m
fory=1:n
M=M+I(x,y);
end
end
M1=M/(m*n);
forx=1:m
fory=1:n
var=var+(I(x,y)-M1)*(I(x,y)-M1);
end
end
var1=var/(m*n);
%c=sqrt(30*(I(x,y)-M1)/var1);
forx=1:m
fory=1:n
ifI(x,y)>=M1
I(x,y)=150+sqrt(100*(I(x,y)-M1)*(I(x,y)-M1)/var1);
el
I(x,y)=150-sqrt(100*(M1-I(x,y))*(M1-I(x,y))/var1);
end
end
end
figure,imshow(uint8(I))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%分割
M=10;%1
H=m/M;L=n/M;
aveg1=zeros(H,L);
指纹识别中若干关键问题研究
24
var1=zeros(H,L);
forx=1:H;
fory=1:L;
aveg=0;var=0;
fori=1:M;
forj=1:M;
aveg=I(i+(x-1)*M,j+(y-1)*M)+aveg;
end
end
aveg1(x,y)=aveg/(M*M);
fori=1:M;
forj=1:M;
var=(I(i+(x-1)*M,j+(y-1)*M)-aveg1(x,y))*(I(i+(x-1)*M,j+(y-1)*M)-aveg1(x,y))+var;
end
end
var1(x,y)=var/(M*M);
end
end
Gmean=0;Vmean=0;
forx=1:H
fory=1:L
Gmean=Gmean+aveg1(x,y);
Vmean=Vmean+var1(x,y);
end
end
Gmean1=Gmean/(H*L);
Vmean1=Vmean/(H*L);
gtemp=0;gtotle=0;vtotle=0;vtemp=0;
forx=1:H
fory=1:L
ifGmean1>aveg1(x,y)
gtemp=gtemp+1;
gtotle=gtotle+aveg1(x,y);
end
ifVmean1
vtemp=vtemp+1;
vtotle=vtotle+var1(x,y);
end
end
浙江理工大学信息电子学院本科毕业论文(设计)
25
end
G1=gtotle/gtemp;V1=vtotle/vtemp;
gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0;
forx=1:H
fory=1:L
ifG1
gtemp1=gtemp1+1;
gtotle1=gtotle1+aveg1(x,y);
end
if0
vtemp1=vtemp1+1;
vtotle1=vtotle1+var1(x,y);
end
end
end
G2=gtotle1/gtemp1;V2=vtotle1/vtemp1;
moban=zeros(H,L);
T1=G2;T2=V2;
T3=G1-100;T4=V2-10;
forx=1:H
fory=1:L
ifaveg1(x,y)>T1&&var1(x,y)
moban(x,y)=1;
end
ifaveg1(x,y)
moban(x,y)=1;
end
end
end
forx=2:H-1
fory=2:L-1
ifmoban(x,y)==1
ifmoban(x-1,y)+moban(x-1,y+1)+moban(x,y+1)+moban(x+1,y+1)+moban(x+1,y)
+moban(x+1,y-1)+moban(x,y-1)+moban(x-1,y-1)<=4
moban(x,y)=0;
end
end
end
end%2
指纹识别中若干关键问题研究
26
Icc=ones(m,n);
forx=1:H
fory=1:L
ifmoban(x,y)==1
fori=1:M
forj=1:M
I(i+(x-1)*M,j+(y-1)*M)=G1;
Icc(i+(x-1)*M,j+(y-1)*M)=0;
end
end
end
end
end
figure,imshow(uint8(I))
%%%%%%%%%%%%%%%%%%%%%%二值化
temp=(1/9)*[111;111;111];%模版系数%3
Im=double(I);
In=zeros(m,n);
fora=2:m-1;
forb=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)*tem
p(3,3);
end
end
I=In;
Im=zeros(m,n);
forx=5:m-5;
fory=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);
浙江理工大学信息电子学院本科毕业论文(设计)
27
b=summ/8;
if(summax+summin+4*I(x,y))>(3*(sum1+sum2+sum3+sum4+sum5+sum6+sum7+sum8)/8)
sumf=summin;
el
sumf=summax;
end
ifsumf>b
Im(x,y)=128;
el
Im(x,y)=255;
end
end
end
fori=1:m
forj=1:n
Icc(i,j)=Icc(i,j)*Im(i,j);
end
end
fori=1:m
forj=1:n
if(Icc(i,j)==128)
Icc(i,j)=0;
el
Icc(i,j)=1;
end;
end
end
%figure,imshow(double(Icc))
%%%%%%%%%%%%%%%%%二值化后处理
Im=Icc;
In=Im;
fora=1:4
fori=2:m-1
forj=2:n-1
ifIm(i,j)==1
ifIm(i-1,j)+Im(i-1,j+1)+Im(i,j+1)+Im(i+1,j+1)+Im(i+1,j)+Im(i+1,j-1)+Im(i,j-1)+
Im(i-1,j-1)<=3
In(i,j)=0;
end
指纹识别中若干关键问题研究
28
end
ifIm(i,j)==0
ifIm(i-1,j)+Im(i-1,j+1)+Im(i,j+1)+Im(i+1,j+1)+Im(i+1,j)+Im(i+1,j-1)+Im(i,j-1)+
Im(i-1,j-1)>=7
In(i,j)=1;
end
end
end
end
Im=In;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%细化
figure,imshow(In);
I=xihua(In);
figure,imshow(I);
%%%%%%%%%%%%%%%%%%%特征提取
xxx=0;
Im=I;
tezheng=zeros(m,n,3);
fori=2:m-1
forj=2:n-1
ifIm(i,j)==1
a=0;
ifIm(i-1,j)~=Im(i-1,j+1)
a=a+1;
end
ifIm(i-1,j+1)~=Im(i,j+1)
a=a+1;
end
ifIm(i,j+1)~=Im(i+1,j+1)
a=a+1;
end
ifIm(i+1,j+1)~=Im(i+1,j)
a=a+1;
end
ifIm(i+1,j)~=Im(i+1,j-1)
a=a+1;
end
ifIm(i+1,j-1)~=Im(i,j-1)
a=a+1;
end
ifIm(i,j-1)~=Im(i-1,j-1)
a=a+1;
浙江理工大学信息电子学院本科毕业论文(设计)
29
end
ifIm(i-1,j-1)~=Im(i-1,j)
a=a+1;
end
ifa==6%%%分叉点判断
tezheng(i,j,1)=i;
tezheng(i,j,2)=j;
tezheng(i,j,3)=1;
xxx=xxx+1;
I(i,j)=0;
I(i-1,j)=1;I(i-1,j+1)=1;I(i,j+1)=1;I(i+1,j+1)=1;I(i+1,j)=1;I(i+1,j-1)=1;I(i,j-1)=1;I(i-1,j-1)=1;
%%%%%%%%%%%%%%1表示分叉点0表示端点
end
ifa==2%%%%端点判断
tezheng(i,j,1)=i;
tezheng(i,j,2)=j;
tezheng(i,j,3)=2;
xxx=xxx+1;
I(i,j)=0;
I(i-1,j)=1;I(i-1,j+1)=1;I(i,j+1)=1;I(i+1,j+1)=1;I(i+1,j)=1;I(i+1,j-1)=1;I(i,j-1)=1;I(i-1,j-1)=1;
end
end
end
end
figure,imshow(I)
%%%%%%%%%%%%%%%%%%%%特征提取后处理~
Izz=I;
fori=1:m%%%%%%%%%%%%%%%%%%%%%%%%去除边界点
forj=1:n
iftezheng(i,j,3)~=0
ifi-17<0||i+17>m||j-17<0||j+17>n
tezheng(i,j,3)=0;
xxx=xxx-1;%%%消除端点
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
el
a=0;b=0;c=0;d=0;
a=I(i+1,j)+I(i+2,j)+I(i+3,j)+I(i+4,j)+I(i+5,j)+I(i+6,j)+I(i+7,j)+I(i+8,j)+I(i+9,j)+I(i+10,j)+I(i+11,j)+I(i+1
2,j);
指纹识别中若干关键问题研究
30
b=I(i-1,j)+I(i-2,j)+I(i+3,j)+I(i-4,j)+I(i-5,j)+I(i-6,j)+I(i-7,j)+I(i-8,j)+I(i-9,j)+I(i-10,j)+I(i-11,j)+I(i-12,j);
c=I(i,j+1)+I(i,j+2)+I(i,j+3)+I(i,j+4)+I(i,j+5)+I(i,j+6)+I(i,j+7)+I(i,j+8)+I(i,j+9)+I(i,j+10)+I(i,j+11)+I(i,j+
12);
d=I(i,j-1)+I(i,j-2)+I(i,j-3)+I(i,j-4)+I(i,j-5)+I(i,j-6)+I(i,j-7)+I(i,j-8)+I(i,j-9)+I(i,j-10)+I(i,j-11)+I(i,j-12);
if(a<=1&&b<=1&&c<=1&&d<=1)
tezheng(i,j,3)=0;%%%消除端点
xxx=xxx-1;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
end
end
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%消除断点
fori=17:m-17
forj=17:n-17
iftezheng(i,j,3)==2
forx=i-12:i+12
fory=j-12:j-1
iftezheng(x,y,3)==2
tezheng(i,j,3)=0;
tezheng(x,y,3)=0;
xxx=xxx-2;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
Izz(x-1,y)=0;Izz(x-1,y+1)=0;Izz(x,y+1)=0;Izz(x+1,y+1)=0;Izz(x+1,y)=0;Izz(x+1,y-1)=0;Izz(x,j-1)=0;Iz
z(x-1,y-1)=0;
end
end
forx=i-12:i+12
fory=j+1:j+12
iftezheng(x,y,3)==2
tezheng(i,j,3)=0;
tezheng(x,y,3)=0;
xxx=xxx-2;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
浙江理工大学信息电子学院本科毕业论文(设计)
31
1)=0;
Izz(x-1,y)=0;Izz(x-1,y+1)=0;Izz(x,y+1)=0;Izz(x+1,y+1)=0;Izz(x+1,y)=0;Izz(x+1,y-1)=0;Izz(x,j-1)=0;Iz
z(x-1,y-1)=0;
end
end
end
end
end
end
end
%figure,imshow(I)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%消除毛刺
fori=10:m-10
forj=10:n-10
iftezheng(i,j,3)==2
forx=i-5:i+5
fory=j-5:j+5
iftezheng(x,y,3)==1
tezheng(i,j,3)=0;
tezheng(x,y,3)=0;
xxx=xxx-2;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
Izz(x-1,y)=0;Izz(x-1,y+1)=0;Izz(x,y+1)=0;Izz(x+1,y+1)=0;Izz(x+1,y)=0;Izz(x+1,y-1)=0;Izz(x,j-1)=0;Iz
z(x-1,y-1)=0;
end
end
end
end
end
end
%figure,imshow(I)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%消除小桥
fori=10:m-10
forj=10:n-10
iftezheng(i,j,3)==1
forx=i-6:i+6
fory=j-6:j-1
iftezheng(x,y,3)==1
tezheng(i,j,3)=0;
指纹识别中若干关键问题研究
32
tezheng(x,y,3)=0;
xxx=xxx-2;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
Izz(x-1,y)=0;Izz(x-1,y+1)=0;Izz(x,y+1)=0;Izz(x+1,y+1)=0;Izz(x+1,y)=0;Izz(x+1,y-1)=0;Izz(x,j-1)=0;Iz
z(x-1,y-1)=0;
end
end
end
forx=i-6:i+6
fory=j+1:j+6
iftezheng(x,y,3)==1
tezheng(i,j,3)=0;
tezheng(x,y,3)=0;
xxx=xxx-2;
Izz(i-1,j)=0;Izz(i-1,j+1)=0;Izz(i,j+1)=0;Izz(i+1,j+1)=0;Izz(i+1,j)=0;Izz(i+1,j-1)=0;Izz(i,j-1)=0;Izz(i-1,j-
1)=0;
Izz(x-1,y)=0;Izz(x-1,y+1)=0;Izz(x,y+1)=0;Izz(x+1,y+1)=0;Izz(x+1,y)=0;Izz(x+1,y-1)=0;Izz(x,j-1)=0;Iz
z(x-1,y-1)=0;
end
end
end
end
end
end
figure,imshow(Izz)
%%%%%%%%%%%%%%%%%%%%%%%%%匹配
pipei=zeros(xxx,3);
ddd=1;
fori=10:m-10
forj=10:n-10
ifddd~=xxx+1
iftezheng(i,j,3)~=0
pipei(ddd,1)=tezheng(i,j,1);
pipei(ddd,2)=tezheng(i,j,2);
pipei(ddd,3)=tezheng(i,j,3);
ddd=ddd+1;
end
end
浙江理工大学信息电子学院本科毕业论文(设计)
33
end
end
%计算p1与格
pp=zeros(xxx,xxx-1);
qqq=1;
forfff=1:xxx-1
fori=qqq:xxx-1
d=sqrt((pipei(qqq,1)-pipei(i+1,1)).^2+(pipei(qqq,2)-pipei(i+1,2)).^2);
%jiao=arctan((pipei(i+1,2)-pipei(qqq,2))/(pipei(i+1,1)-pipei(qqq,1));
%jiaodu(qqq,i)=jiao;
pp(qqq,i)=d;
end
ifqqq~=1
forttt=1:qqq
ifttt~=qqq
pp(qqq,ttt)=pp(ttt,qqq-1);
%jiaodu(qqq,ttt)=180-jiaodu(ttt,qqq);
end
end
end
qqq=qqq+1;
end
qq=pp;%%%%%%%%%%%%%手动修改模板的匹配
T=6;
yyy=xxx;
count=zeros(xxx-1,yyy-1);
fori=1:xxx-1
forj=1:yyy-1
forx=1:xxx-1
fory=1:yyy-1
p1(x,y)=abs(pp(i,x)-qq(j,y));%%%%%%%修改矩阵
end
end
count1=0;
forv=1:xxx-1
ifmin(p1(v,1:35))
count1=count1+1;
end
end
count(i,j)=count1;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%找最大值的坐标
temp=0;
指纹识别中若干关键问题研究
34
fori=1:xxx-1
forj=1:yyy-1
ifcount(i,j)>temp
temp=count(i,j);
Pdingdian=i;
Qdingdian=j;
end
end
end
%%%%%%%%%%%%%%%%%%%%%%
count2=0;success=0;
forx=1:xxx-1
fory=1:yyy-1
p1(x,y)=abs(pp(Pdingdian,x)-qq(Qdingdian,y));
end
end
forx=1:xxx-1%%%%%%%%%%%%%整行
if(min(p1(x,1:35))<6)
count2=count2+1;
end
end
if(count2/min(xxx,yyy)>0.6&&count2>9)
success=1
end
success
toc
1、细化子程序
functionY=xihua(X)
[M,N]=size(X);
Y=zeros(M,N,20);
Z=zeros(M,N,20);
Y(:,:,1)=X;
Z(:,:,1)=X;
fork=2:20;
Y(:,:,k)=Y(:,:,k-1);
fori=2:M-1;
forj=2:N-1;
%***y11y12y13
%*@*y21y22y23
%***y31y32y33
y11=Y(i-1,j-1,k-1);
浙江理工大学信息电子学院本科毕业论文(设计)
35
y12=Y(i-1,j,k-1);
y13=Y(i-1,j+1,k-1);
y21=Y(i,j-1,k-1);
y22=Y(i,j,k-1);
y23=Y(i,j+1,k-1);
y31=Y(i+1,j-1,k-1);
y32=Y(i+1,j,k-1);
y33=Y(i+1,j+1,k-1);
%00*
%0@1
%*1*(1)
ify22==0&y11==0&y12==0&y21==0&y23==1&y32==1;
Y(i,j,k)=2;
%*1*
%0@1
%00*(4)
elify22==0&y12==1&y21==0&y23==1&y31==0&y32==0;
Y(i,j,k)=2;
%000
%0@0
%*11(9)
elify22==0&y11==0&y12==0&y13==0&y21==0&y23==0&y32==1&y33==1;
Y(i,j,k)=2;
%00*
%0@1
%001(12)
elify22==0&y11==0&y12==0&y21==0&y23==1&y31==0&y32==0&y33==1;
Y(i,j,k)=2;
%*0*
%1@1
%111(5)
elify22==0&y12==0&y21==1&y23==1&y31==1&y32==1&y33==1;
Y(i,j,k)=2;
%*11
%0@1
%*11(8)
elify22==0&y12==1&y13==1&y21==0&y23==1&y32==1&y33==1;
Y(i,j,k)=2;
elY(i,j,k)=y22;
end
end
end
fori=2:M-1;
forj=2:N-1;
指纹识别中若干关键问题研究
36
%***y11y12y13
%*@*y21y22y23
%***y31y32y33
y11=Y(i-1,j-1,k);
y12=Y(i-1,j,k);
y13=Y(i-1,j+1,k);
y21=Y(i,j-1,k);
y22=Y(i,j,k);
y23=Y(i,j+1,k);
y31=Y(i+1,j-1,k);
y32=Y(i+1,j,k);
y33=Y(i+1,j+1,k);
%*00
%1@0
%*1*(2)
ify22==0&y12~=1&y13~=1&y21==1&y23~=1&y32==1;
Y(i,j,k)=3;
%*1*
%1@0
%*00(3)
elify22==0&y12==1&y21==1&y23~=1&y32~=1&y33~=1;
Y(i,j,k)=3;
%*00
%1@0
%100(10)
elify22==0&y12~=1&y13~=1&y21==1&y23~=1&y31==1&y32~=1&y33~=1;
Y(i,j,k)=3;
%11*
%0@0
%000(11)
elify22==0&y11==1&y12==1&y21~=1&y23~=1&y31~=1&y32~=1&y33~=1;
Y(i,j,k)=3;
%11*
%1@0
%11*(6)
elify22==0&y11==1&y12==1&y21==1&y23~=1&y31==1&y32==1;
Y(i,j,k)=3;
%111
%1@1
%*0*(7)
elify22==0&y11==1&y12==1&y13==1&y21==1&y23==1&y32~=1;
Y(i,j,k)=3;
elY(i,j,k)=Y(i,j,k);
end
浙江理工大学信息电子学院本科毕业论文(设计)
37
end
end
Z(:,:,k)=Y(:,:,k);
fori=3:M-2;
forj=3:N-2;
%*****y11y12y13y14y15
%*****y21y22y23y24y25
%**@**y31y32y33y34y35
%*****y41y42y43y44y45
%*****y51y52y53y54y55
y11=Y(i-2,j-2,k);
y12=Y(i-2,j-1,k);
y13=Y(i-2,j,k);
y14=Y(i-2,j+1,k);
y15=Y(i-2,j+2,k);
y21=Y(i-1,j-2,k);
y22=Y(i-1,j-1,k);
y23=Y(i-1,j,k);
y24=Y(i-1,j+1,k);
y25=Y(i-1,j+2,k);
y31=Y(i,j-2,k);
y32=Y(i,j-1,k);
y33=Y(i,j,k);
y34=Y(i,j+1,k);
y35=Y(i,j+2,k);
y41=Y(i+1,j-2,k);
y42=Y(i+1,j-1,k);
y43=Y(i+1,j,k);
y44=Y(i+1,j+1,k);
y45=Y(i+1,j+2,k);
y51=Y(i+2,j-2,k);
y52=Y(i+2,j-1,k);
y53=Y(i+2,j,k);
y54=Y(i+2,j+1,k);
y55=Y(i+2,j+2,k);
%*****
%**1**
%*0@**
%*100*
%*****()
ify23==1&y32~=1&y42==1&y43~=1&y44~=1;
Z(i,j,k)=0;
%*****
%***0*
指纹识别中若干关键问题研究
38
%*1@0*
%**01*
%*****()
elify24~=1&y32==1&y34~=1&y43~=1&y44==1;
Z(i,j,k)=0;
%*****
%**1**
%**@0*
%*001*
%*****()
elify23==1&y34~=1&y42~=1&y43~=1&y44==1;
Z(i,j,k)=0;
%*****
%**01*
%*1@0*
%***0*
%*****()
elify23~=1&y24==1&y32==1&y34~=1&y44~=1;
Z(i,j,k)=0;
%*****
%*****
%*1@**
%*01**
%*****()
elify33~=1&y32==1&y42~=1&y43==1;
Z(i,j,k)=0;
%*****
%*01**
%*1@**
%*****
%*****()
elify33~=1&y22~=1&y23==1&y32==1;
Z(i,j,k)=0;
%*****
%**10*
%**@1*
%*****
%*****()
elify33~=1&y23==1&y24~=1&y34==1;
Z(i,j,k)=0;
%*****
%*****
%**@1*
%**10*
浙江理工大学信息电子学院本科毕业论文(设计)
39
%*****()
elify33~=1&y34==1&y43==1&y44~=1;
Z(i,j,k)=0;
%*****
%**00*
%*1@01
%**00*
%*****
elify23~=1&y24~=1&y32==1&y34~=1&y33==1&y43~=1&y44~=1;
Z(i,j,k)=0;
%**1**
%*000*
%*0@0*
%**1**
%*****
elify13==1&y22~=1&y23~=1&y24~=1&y32~=1&y34~=1&y43==1;
Z(i,j,k)=0;
%*****
%*00**
%10@1*
%*00**
%*****
elify22~=1&y23~=1&y31==1&y32~=1&y34==1&y42~=1&y43~=1;
Z(i,j,k)=0;
%**1**
%*000*
%*0@0*
%**1**
%*****
elify13==1&y22~=1&y23~=1&y24~=1&y32~=1&y34~=1&y43==1;
Z(i,j,k)=0;
%*****
%**11*
%*0@1*
%**11*
%*****
elify33>1&y23==1&y24==1&y32~=1&y34==1&y43==1&y44==1&y22+y42>0;
Z(i,j,k)=0;
%*****
%**0**
指纹识别中若干关键问题研究
40
%*1@1*
%*111*
%*****
elify33>1&y23~=1&y32==1&y34==1&y42==1&y43==1&y44==1&y22+y24>0;
Z(i,j,k)=0;
%*****
%*11**
%*1@0*
%*11**
%*****
elify33>1&y22==1&y23==1&y32==1&y34~=1&y42==1&y43==1&y24+y44>0;
Z(i,j,k)=0;
%*****
%*111*
%*1@1*
%**0**
%*****
elify33>1&y22==1&y23==1&y24==1&y32==1&y34==1&y43~=1&y42+y44>0;
Z(i,j,k)=0;
elZ(i,j,k)=Y(i,j,k);
end
end
end
fori=1:M;
forj=1:N;
ifZ(i,j,k)>1;
Z(i,j,k)=1;
elZ(i,j,k)=Z(i,j,k);
end
end
end
Y(:,:,k)=Z(:,:,k);
ifY(:,:,k)==Y(:,:,k-1);
break;
end
end
Y=Z(:,:,k);
本文发布于:2023-03-11 11:45:14,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678506315214559.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:指纹识别系统.doc
本文 PDF 下载地址:指纹识别系统.pdf
留言与评论(共有 0 条评论) |