欢迎来到中国论文库,分享知识,创造价值。
服务热线:  4000444813
当前位置:首页 > 论文大全 > 科教文艺 >

科技论文代写-指纹识别算法的MATLAB实现2017-10-07 16:30:41

3.1  MATLAB简介 

MATLAB是MATrix LABoratory的缩写,意为矩阵实验室,是一款由美国The MathWorks出品的商业性数学软件。MATLAB是一种用作数据分析、算法开发及数值运算的高级计算语言和交互式环境。除了矩阵运算、绘制函数/数据 图像等功能外,MATLAB还可用来创建用户界面,新版本的MATLAB还可以调用其它语言(C语言, C++, Java, FORTRAN和Python等)编写的程序。
尽管MATLAB作为数学软件主要用于数值运算和分析,但通过使用附加工具箱(Toolbox),MATLAB也可应用于工程计算、控制系统设计和仿真、数字 图像处理、数字信号检测与处理、通讯系统设计与仿真、金融建模设计和分析等领域。此外,MATLAB的另外一个软件包Simulink可提供可视化开发环境,在系统模拟、动态/嵌入式系统开发等领域具有广泛的应用。
MATLAB具有完备的图像处理功能,高效的数值计算功能,友好的用户界面及功能丰富的附加工具箱等优点,其基本运算单位是矩阵,具有与工程中表达 形式相似的指令代码,因此相比于C语言, C++, Java和FORTRAN等语言,使用MATLAB可以更加简捷方便的解决同样的问题。MATLAB将在国内外的科学研究和工程应用中发挥越来越大的作用。

3.2  MATLAB在指纹识别中的应用

MATLAB是交互式的语言,输入命令就可以给出运算结果。MATLAB语言简单、内涵丰富,其操作和功能函数指令是计算机上常用的一些简单的英文单词,它可以使用简单的专有指令完成C语言或其它高级语言中较为复杂的编程 问题。MATLAB是一种强大的计算机编程语言,其语言简洁且图形显示功能强大,可以作为仿真平台应用于指纹识别。指纹识别算法处理的是形成图像的像 素点的灰度值,可以使用MATLAB将图形文件转变成可用于程序处理的数据形式。
MATLAB具有自己特定的图像读取和显示功能函数,比其它的编程语言方便的多。下面是一个用MATLAB读取位图并以灰度图像方式显示的程序:
img=imread('d:/xxx.bmp'); % 读入24位bmp位图
[height,width,d]=size(img) % 获取位图的高/宽/维数
imgray=rgb2gray(img); % 将24位位图转为8位灰度图
subplot(1,2,1); %1行2列显示窗口1
imshow(imgray) % 显示灰度图
[X,Y]=meshgrid(1:width,1:height); % 产生供三维绘图的X,Y数据
subplot(1,2,2);%1行2列显示窗口2
plot3(X,Y,imgray,'b*') % 绘图
axis square;
grid on
MATLAB语言不需要定义变量,而是直接对其进行赋值。通过赋值命令输入的矩阵是一个整形变量,而程序在内处理图形时所采用的是双精度数据类 型,因此在进行程序内处理前需要对数据类型进行转换[9][10]
X=double (img);
上述命令中的X代表转换后的双精度类型数据,img是一个整形矩阵,代表的是指纹图像中像素灰度值输入的数组。使用上述命令后,整型变量就被强制转成双精度数据类型。

3.2 指纹图像预处理

3.2.1 图像规格化

指纹图像采集时,所使用的采集设备和采集环境都会对采集的图像的总体对比度产生一定的的影响,因此采用图像归一化方法使不同采集设备和采集环 境下采集到的指纹图像具有同样的灰度均值与方差,从而使所有图像的灰度分布在统一的范围内,方便图像的后续处理。归一化算法如下所示:
(1)计算图像的平均值与方差。该部分主要是利用统计图像中各点像素值获 得的直方图来计算下一个程序段所需的的相关数据指标。
(2)通过程序处理之后得到的图像的平均值与方差,计算归一化的G值。
相关程序见附录1。

3.2.2 图像分割

图像分割是图像识别和计算机视觉至关重要的预处理。其工作原理就是将图像分割成若干个特定的、具有独特性质的区域。未经处理的指纹图像包括纹 线区域和周围无用区域。这些无用区域会增加计算过程中的冗余度。因此需要将无用区域从图像中去除掉。常用的图像分割方法包括阀值分割、区域分割、边缘分割和直方图法等。本文首先对各像素邻域进行特征分析,然后进行图像 分割。
将图像分割成T*T的非重叠块,然后计算出每块区域的灰度平均值M和方差Var,通过以下几个条件来区分前景与背景:
(1)当M>M1且Var<Var1时,认为是背景;
(2)当M≤M1且Var≥Var1时,认为是前景,剩余块待定;
(3)划分完对所有分块后,对待定块进行判定。如待定块在8邻域内,且背景景≤4则认为是前景,否则认为是背景。
通过几次程序调试后对指纹图像进行3*3分块处理。
具体程序见附录1。
 

3.2.3 图像二值化

图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。指纹图像通常都具有较清晰的方向场,方向场的准确性将直接决定图像增强算法的最终效果。
为确定图像的方向场,将图像中的指纹脊线方向分为8块,如图3-1所示。
图3-1 同一个像素处的8个指纹脊线方向
如图所示,首先将分割后的图像进行平均滤波处理,随后为确定图像每个像素的脊线方向,在以该像素点为中心的9*9窗口内,分别计算周围8个方向 上的灰度值,当summax+summin+ 4×I(x,y))> (3×summ/8)时,该像素点的脊线 方向为summin,否则脊线方向为summax。
完成脊线方向的确认后就可根据该方向场对指纹图像进行二值化处理。
相关程序见附录1。

3.2.4 图像增强

图像增强的目的是改善图像的视觉效果,针对图像的应用场合,有目的地增强图像的整体或局部特性并抑制不感兴趣的特征,扩大图像中不同物体特征 间的差别,从而改善图像的质量、丰富信息量,满足某些特殊分析的需要。
在指纹采集过程中,不可避免的存在着各种影响因素,比如采集设备和采集环境的影响,皮肤上存在的水分和污染物对采集效果也有较大影响,会导致 指纹图像中纹线粘连和纹线断裂等缺陷的产生,不利于后续的指纹特征的提取。因此,在对指纹进行特征提取前,先要对其进行图像增强处理,从而保证指纹特征提取的方便性和可靠性。
实验中对指纹图像进行了去除空洞和毛刺的处理。
具体程序见附录1。

3.2.5 图像细化

图像细化指的是二值图像的骨架化的一种操作运算。所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到 图像的骨架。图像二值化后的指纹纹线仍然具有一定的度,而指纹识别只与纹线走向相关,因此需对二值化图像进行细化处理,减少冗余信息,突出纹线特征,便于后续指纹特征提取。
具体程序见附录1。

3.3 特征点提取

3.3.1 提取端点和交叉点

特征点 由端点 和交 叉点 中选 出,因 此要 找出 在细 化后图像 的所有 端点和交叉点。通 过 定 义函数P.m,对指纹图像 中每个 点的8邻域 位置进 行坐标 定义, 方便后续处理。
随后通过定义 函数 Point.m来找 出细 化后图 像的 所有 端点。
将每个点的8邻域依次相减并取绝对值,将所得结果相加,加和为2时定义为端点,加和为6时定义为交叉点。
程序运行完成后,找出全部端点和交叉点。数组txy第一项定义为横坐标,第二项为纵坐标,第三项为2或6。
P.m和 Point.m程序见附录2。

3.3.2 纹线光滑处理

指纹图像增强处理过程中已对指纹图像进行了去毛刺和空洞处理。本节通过函数guanghua.m对细化后的图像进行进一步的光滑处理。其过程为:找出所有端点并使之沿纹线的方向移动5个像素,如有交叉点存在,则认为此端点为 毛刺,去除之。
光滑处理完成后需再次执行point函数找新的端点。
guanghua.m程序见附录2。

3.3.3 去除图像边缘的端点

由于采集设备的影响,不可避免的在指纹图像的边缘出现一些不需要端点,这些端点的存在不仅会增加后续的工作量,而且还可能会产生错误,因此 需要这些多余的端点去掉。本实验采用了cut函数来进行端点的处理。
相关程序见附录2。

3.4 找出特征点

3.4.1 single_point函数

通过光滑处理和去除边缘端点后减少了交叉点和端点的数目。下面就要找出一些独特的端点来作为特征点。细化后的指纹图像上,一个端点周围半径为r 个像素的圆内如果没有任何端点和交叉点,那么此类点会随着r的变大而减少,这类点也会越来越独特。为此本实验通过设计single_poin函数来寻找此类 的点。
详细程序见附录3。

3.4.2 walk函数

为进一步寻找特征点,本文定义了一个walk函数,其作用是判断与某一端点相距num的区域是否存在另外的端点。
具体程序见附录3。

3.4.3 last1函数

结合以上两个函数,设计处一个新的last1函数。通过运行程序[pxy3,error2]= last1(thin,r,txy,num)可以判断周围半径为r个像素的圆内有没有端点或交叉点,并 判断沿纹线走num个像素内是否存在另外的端点或交叉点。
程序的详细步骤见附录3。

3.5 特征点匹配

3.5.1 纹线长度匹配

上文已经就指纹图像的特征点做了详细叙述,通过程序设计找出了特征点并画出了纹线,本节主要解决匹配问题,根据需要进行了三层匹配的设置。
首先是纹线长度匹配的设置。对上文获得的特征点和纹线,采用distance函数,使每沿着纹线经过5个像素便测量该位置到原始端点的距离。详细程序 见附录4。
测量完成后得到一个涵盖长度信息的数组。如两幅图像中的指纹图形一样,则它们会具有相同的特征点以及从此特征点出发出现的纹线,两长度数组所对应位置的比例也应相等。为此,最终定义了一个函数f=(sum(abs((d1./d2)-1))),其中f值越接近于0,两指纹图像的匹配度越高。

3.5.2 三角形边长匹配

找出一个特征点后,可据此找到距其最近的两个端点或交叉点,若两幅指纹图像的三角形边长具有相同的比例,表明该幅图像匹配。其中,定义函数 find_point来寻找距特征点最近的端点或交叉点。
在纹线长度匹配的基础上定义了函数ff=(sum(abs((dd1./dd2)-1))),ff值越接近于0,两指纹图像的匹配度越高。
函数find_point和ff见附录4。

3.5.3 点类型匹配

一个特征点的周围可找到40个端点或交叉点,分别统计这些点中端点和交叉点的数量。若两幅指纹图像中的端点所占的比例近乎相同,则两图相匹配。定义函数fff=abs(f11-f21)/(f11+f12), fff值越接近于0,两指纹图像的匹配度越高。
最终程序如附录4所示。

3.6 本章小结

    本章简明扼要的介绍了MATLAB的语言特点及其优点。MATLAB是一种用作数据分析、算法开发及数值运算的高级计算语言和交互式环境,其语言简 洁且图形显示功能强大,除了矩阵运算、绘制函数/数据图像等功能外,MATLAB还可用来创建用户界面,新版本的MATLAB还可以调用其它语言(C语言, C++, Java, FORTRAN和Python等)编写的程序。作为一种功能强大且使用方便简洁的计算机语言,MATLAB可以作为仿真平台应用于指纹识别。本章详 细的介绍了指纹图像的识别的处理步骤及实现指纹识别的MATLAB算法。通过指纹图像的预处理、端点和交叉点等特征点的提取和寻找、不同特征点的匹配 等一系列的操作来达到指纹识别的目的。其中,图像预处理过程包括图像规格化、图像分割、图像二值化、图像增强以及图像细化等;特征点提取包含端点和交叉点的提取、图像纹线的光滑处理和图像边缘端点的去除;通过single_point函数、walk函数和last1函数来寻找特征点,一个端点周围半径 为r个像素的圆内如果不存在任何的端点或交叉点,那么特征点的数量会随r的变大而减少,且特征点会变得越来越独特,通过这种方式可以找到特征点;特征点匹配主要由纹线长度匹配、三角形边长匹配和点类型匹配三部分组成。
结论
本文在前人研究的基础上,查阅大量相关文献资料,对指纹识别系统中的图像预处理、特征点提取及匹配进行了深入地研究,对传统的指纹识别算法进行了改进,对指纹图像预处理的各个步骤做了详细的讨论,并使用matlab对实验结果加以仿真和验证,实现了整套算法在指纹识别中的应用。本文主要工作内容如下:
详述了指纹识别技术的发展历程和国内外的研究现状,叙述了指纹识别系统建立的价值和意义,提出了指纹识别技术的Matlab处理方法,充分利用Matlab的优点对指纹图像进行预处理、提取和寻找特征点、匹配不同特征点等一系列的操作来完成指纹识别。通过对指纹图象进行提取,并对图像进行预处理,得到清晰的指纹图象,再从图像中提取到特征点,通过特征点的纹线长度匹配、三角形边长匹配和点类型匹配对指纹进行对比,得出理想结果。实验结果表明,采用Matlab语言可实现指纹图像的识别,该方法既简单快捷,又准确可靠。
免费热线   4000444813
公司座机   028-65876501
全国咨询   13018295905
陈编辑 点击这里给我发消息  862351366   13018295905
刘编辑 点击这里给我发消息 1581273019   13018295905
 
服务邮箱   bianshen@vip.163.com

  • 杜 若-中电联官网-2017电力大数据应用创新大会
  • 吴锋-《现代传播》-美国新闻传播教育的最新进展与改革
  • 戴盛欧-《建筑工程技术与设计》-建筑设计过程中图示思维的意义和作
  • 张俊-《中国农业信息》-浅谈泰兴市农业信息化的现状与建议
  • 唐黎卿-《吉林省教育学院学报(下旬)》-高职商务英语专业基础课教学新思路
  • 高婵娟-《才智》-创新实践:浅析实拍影像与动画的异
  • 吴菲菲-《科技进步与对策》-专利质量综合评价指数--以我国生物
  • 宋生彪-《油气田地面工程》-从经营管理者入手强化油田公司内部
  • 乔慧娟-《商业时代》-论我国境外经贸合作区的风险防范问
  • 杨爱军-《读写算(教育教学研究)》-把握课标精髓促进读写结合--谈小学

关于我们 联系方式 评审要求 招聘信息 付款方式 媒体发布 英文期刊 论文转让 客户评价 网站地图 信誉说明

全国免费服务热线 4000444813  办公电话028-65876501 
企业QQ 800071531(猛戳我)投稿邮箱 bianshen@vip.163.com
联系地址:成都市武侯区川大学术交流中心  
ICP备案号:蜀ICP备1402865
本站所合作期刊,均为国家新闻出版总署:http://www.gapp.gov.cn 批准的、正规、合法、双刊号期刊。