资讯详情

【老生谈算法】基于matlab的指纹处理和识别算法详解及程序源码——指纹识别算法

基于matlab指纹处理和识别程序

大家好,今天给大家介绍一下。matlab指纹处理和识别程序的设计和原理。

  • 基于matlab指纹处理和识别程序
    • 1、项目简介
    • 2、难度指数
    • 3.运行环境:
    • 4.项目详解:
    • 5.下载源码:

1、项目简介

  1. 文件列表: main.m--------主程序。 imgread.m-----图像读取函数。 imgchg.m------将真彩图像转换为灰度图像的函数。 imgcut.m------图像分割函数。 imgflt.m------图像去噪滤波。 imgdir.m------计算方向图并进行方向滤波。 imgbin.m------图像二值化。 imgthi.m------图像细化。 imgpoi.m------提取指纹特征点。 imgcom.m------比较特征点。 imgres.m------得出比较结论并输出。 imgplot.m-----绘图函数。

  2. 另外两组共有16幅指纹图像供测试。 该程序的指纹识别精度为66.9%。 上述16幅样本图像用于测试。

  3. 内部设定参数分别为: 图像分割中使用的模板为5个×5大小;av>0.6;u<0.01; 过滤器采用默认参数的中值过滤器; 图像二值化采用3×门限为模板覆盖各像素的平均值; 图像细化中使用的形态学结构元素se = strel(‘square’,1); 一次开操算和bwmorph细化轮廓提取函数; 用于去伪的门限为3像素。 特征点比较采用求相关系数的方法。

  4. 指纹识别技术中使用的相关知识 : ?1.图像读取使用函数imread。 ?2.将真彩图像转换为灰度图使用函数rgb2gray 。 ?3.图像分割。 ?4.图像去噪滤波(采用中值滤波法)。 ?6.图像二值化(即将灰度图像转化为二值图像)。 ?7.图像细化(即减少冗余信息,突出指纹的主要特征)。 ?8.提取指纹特征(剪枝粗选特征,去伪存真)。 ?9.特征点比较。


2、难度指数

项目难度:中难度 适用场景:毕业设计及相关领域的应用研究


3.运行环境:

环境配置: 本项目使用MATLAB版本为MATLAB 7.8.0(R2009a) 注:可以适应大部分matlab版本 项目技术: 图像分割算法 中值滤波算法 图像二值化 一次开运算 轮廓提取算法 提取指纹特征等


4.项目详解:

提示:以下为项目的详细介绍,项目源码下载地址见文末~

4.1指纹的分类 指纹是指腹部凹凸的皮肤形成的线条。这取决于人们的遗传特征。虽然每个人都有指纹,但它们是不同的。当胎儿在母亲体内发育三到四个月时,指纹已经形成,但指纹在儿童成长过程中会发生轻微变化,直到青春期14岁左右。

指纹图案一般有三种基本图形: 环型(loop)、弓型(arch)、螺旋型(whorl)。 其它指纹图案都是基于这三种基本图案。

环型: 在这里插入图片描述 弓型: 螺旋型: 4.2指纹特征 指纹不是连续的、光滑的、直的,而是经常中断、分叉或转弯。这些断点、分叉点和转折点被称为特征点。这两个指纹的特征点不可能完全相同,没有发现不同的人有相同的指纹,每个人的指纹都是独特的。

指纹的特征可分为六类,最典型的是终点(端点)和分叉点。

端点(Ending) :这里结束了一条纹路

分叉点(Bifurcation): 在这里,一条两条以上的线分开

分歧点(Ridge Divergence) : 两条平行的线在这里分开

孤立点(Dot or Island) :一条特别短的线变成了一点点

环点(Enclosure): 一条线分成两条后,立即合并成一条,形成的小环称为环点

短纹(Short Ridge) :一端很短,但不会变成一点线

法国巴黎大学教授勃太柴用数学方法证明指纹不同。他在1910年证明了这一特点。他将指纹特征分为起点、终点、分叉和组合四种。每个指纹大约有100个特征点。组合排列后,61位数按4的100次(4100)计算,然后按当时一个世纪生存的人口约50亿计算,每人十指。最后,结果是,两个重复的指纹只能在50位数长的世纪后出现。 4.3指纹识别技术应用方法(模式) 指纹识别技术面,指纹识别技术可分为验证和识别。

验证:就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对来确定身份的过程。指纹以一定的压缩格式存储,并与其姓名或标志一起存储(ID,PIN)联系起来。然后在比较现场,首先验证其标识,然后使用系统指纹与现场收集的指纹进行比较,以证明其标识是合法的。验证实际上回答了这样一个问题:"他是自称的人吗?"这是应用系统中使用较多的方法。

识别:将现场收集到的指纹与指纹数据库中的指纹进行逐一比较,与现场指纹相匹配的指纹。这也被称为"一对多匹配"。识别其实就是回答这样一个问题:他是谁?

指纹是人体的独特特征,其复杂性足以提供识别特征。随着相关支持技术的逐步成熟,指纹识别技术已成为最方便、可靠、非侵权、最便宜的生物识别技术解决方案,具有巨大的市场应用潜力。

4.指纹识别算法原理图:

4.4.采集指纹图像

目前使用的指纹图像采集设备基本上基于三种技术基础: 光学技术、半导体硅技术、超声波技术

光学技术: 借助光学技术收集指纹是历史最悠久、应用最广泛的技术。将手指放在光学镜头上,用棱镜投射到内置光源下的电荷耦合器件中(CCD)然后形成多灰度指纹图像(指纹图像中有一定宽度和方向的线),可以通过指纹设备算法处理,形成黑色和白色的谷线(线之间的凹陷部分)。

光学指纹采集设备具有明显的优点:已经过了长期的应用测试,在一定程度上适应了温度变化,相对便宜,可达500DPI高分辨率等。缺点是光学指纹产品的效果会因为光程足够长而变差。

半导体硅技术(CMOS技术): 20世纪90年代末,基于半导体硅电容效应的技术趋于成熟。硅传感器成为电容器的极板,手指是另一个极板,利用指纹线的脊和谷相对光滑的硅传感器之间的电容差形成8bit灰度图像。 硅技术优点是可以在较小的表面上获得比光学技术更好的图象质量,在1cm×1.5cm表面分辨率为200-300线(较小的表面也会降低成本,并且可以集成到较小的设备中)。 缺点是易受干扰,可靠性相对较差。

超声技术: 为了克服光学技术设备和硅技术设备的不足,出现了一种新型的超声指纹采集设备。其原理是利用超声波具有穿透材料的能力,并产生不同不同大小产生不同的回波(当超声波到达不同材料的表面时,吸收、穿透和反射程度不同)。因此,指纹脊和谷的位置可以通过皮肤和空气之间来区分。

超声技术使用的超声频率为1×104Hz—1×109Hz,能量控制在对人体无害的程度(与医学诊断的强度相同)。超声波技术产品可以达到最佳精度,对手指和平面的清洁度要求较低,但收集时间明显长于上述两种产品。

4.4.2.预处理指纹图像 预处理指纹图像的过程主要包括模式转换、图像分割、图像增强、二值化和细化。

模式转换:将收集到的真彩图像转换为灰度图像,便于处理。 图像分割:去除主图像周围的背景部分,保留主指纹图像。 图像增强:通过灰度变换、直方图校正、平滑、锐化等方法处理图像,使指纹图像特征突出。 二值化:灰度图像通过设置门限转换为只有0和1两个灰度级的二值图像,便于后续处理。 细化:为了减少冗余信息,突出主要特征,将图像的每条纹线变成单像素宽度线。

4.4.提取3个特征点 指纹特征共有六种,但最常见的是端点和分叉点,这两种特征点占绝大部分,所以实际操作中只需要提取这两种特征点就可以了。

方法:通过对模板中心像素以及其8 临域的观察,定义了端点模板和分叉点模板(如图所示)。使用这些模板与图像脊线上的像素点比对,从而实现纹理特征的提取。 4.4.3特征点的对比,得出结论

将两个样本中提取到的特征点进行比对。两个样本中特征点吻合的数量越多,说明两个样本相似度越高。对比对结果进行判断,即可确定两个样本是否来自同一个手指。

4.5.程序算法详解 4.5.1图像分割: 下图所示5×5的模板对图像进行运算,模板每次移动5个像素(保证模板不重叠),对模板下的25个像素点求平均值和方差。平均值大于0.6且方差小于0.01的,就可以认为是背景,将模板覆盖的全部 25个像素点置为“1”,使其变为白色的背景,如下图,其他值保持不变。

图像分割所用模板: 分割前的图像: 分割后的图像:

4.5.2图像二值化: 用3×3的模板对图像进行运算,求出模板覆盖部分的均值,若某像素大于均值,则置为“1”,否则置为“0”。二值化后,会产生很多噪声,所以对图像还要进行一次去噪操作。 4.5.3细化: 图像二值化后,指纹的纹线很粗,含有很多冗余信息。图像细化就是要把纹线收缩到单像素的点线,以减少冗余信息,便于后面的处理。

细化算法: se = strel(‘square’,1);   %创建形态学结构元素 fo = imopen (x,se);    %对原图形进行开运算   %A对B开运算就是A被B腐蚀后的结果再被B膨胀 v = ~bwmorph (fo,‘thin’,inf);%提取二进制图像的轮廓

指纹图像细化后,还不完全是单像素的线,在分叉处任然存在冗余的像素点,这些点需要去除。 二值化后的图像: 细化后的图像: 4.5.4特征点提取: 根据如图所示模板判断特征点,将其保存到一幅空白图片中。 4.5.4特征点去噪: 提取出来的特征点中有许多伪特征点,这是由于前面过程中产生的噪声造成的。这些伪特征点有个特点,那就是它们之间的距离比较近,根据这一特点可以判断出伪特征点并删除,减少对后面判别产生的影响。

4.5.5最后判断 提取出特征点后,对两幅图像计算相关系数,相关系数越大图像越接近,可以设定一个门限,大于门限的判定为同一指纹,否则判定为不匹配。至此,一个指纹识别算法就完成了。


5、源码下载:

本项目及一些精选的matlab指纹识别项目源码如下,有需要的朋友可以点击进行下载

序号 matlab指纹识别项目名(点击下载)
1 基于matlab的指纹处理和识别程序源码_指纹识别_matlab
2 以GUI实现指纹的识别和匹配百分比(推荐)_GUI_指纹识别_matlab
3 PCA方法指纹识别的完整程序运行效果好_指纹识别_matlab
4 opencv指纹识别FVS_opencv_指纹识别_VC++
5 matlab指纹识别源码_2套源码_指纹识别_matlab
6 matlab_fingerprint_指纹识别
7 matlab_指纹识别程序源码_指纹识别
8 matlab sourcecode for 指纹识别_指纹识别_matlab
9 FingerprintSourceCode_指纹识别_VC++
10 指纹识别源码加说明文档_指纹识别_matlab
11 指纹识别的一套完整程序_figner_IMcode_mfile_matlab
12 指纹识别的程序(vc++)_指纹识别_VC++
13 指纹识别_论文带源码(推荐)_matlab
14 一个指纹识别论文及全源码_指纹识别_matlab
15 纯CPP指纹识别_指纹识别_VC++
16 指纹识别技术及其实现_matlab
17 基于Matlab的指纹识别程序_PR_fingerprint_matlab
18 基于matlab的指纹识别程序源码.zip
19 matlab指纹识别系统完整源代码.zip

标签: 电容表面白色的多黑色少

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司