matlab指纹特征提取

合集下载

指纹图像预处理和特征提取算法的Matlab实现

指纹图像预处理和特征提取算法的Matlab实现
Ah出删l As the foundation of the fingerprint matching,preproeessing and minutiae extraction is essential to the whole
algorithm for fingerprint recognition.In this paper,a set of algorithms for preprocessing and minutiae extraction is designed
∥ /燃
a末梢点 图1末梢点和分叉点
图2自动指纹识别系统流程图
3指纹图像的预处理
本文采用的图像预处理算法流程如图3所示。
方向滤波 图3指纹图像预处理算法流程图 各步骤得到的图像如图4所示。
-原始指纹图像 b规格化后的图像 { c方向滤波后的图像
d=值化丘的盥像
e细化后的图像
3.1规格化
图4预处理实验效果图
3.4细化
细化处理(Thinning)是指在二值化的指纹图像上,在
不影响纹线连通性的基础上删除纹线的边缘像素,直到纹 线为单像素宽为止。细化后理想的结果是纹线骨架应该为 原始纹线的骨架中心,并保持纹线细节特征以及纹线的收 敛性、拓扑性、细化性和快速性。细化图像是基于点模式细 节特征点提取的前提,如果无法得到较好的细化图像,后续
不高。本文采用LinHong等人开发的基于最小均方估计
算法,即公式法。公式见式(3)、式(4):
=G(i一1,歹一1)+2G(i,歹一1)+
{二
G(i+1,i—1)一G(i一1.i+1) 2G(i,J+1)一G(i+1,j+1) =G(i一1,j一1)+2G(i,J+1)+ G(i一1,J+1)一G(i+1,J一1)

利用Matlab进行人脸识别和指纹识别的基本原理

利用Matlab进行人脸识别和指纹识别的基本原理

利用Matlab进行人脸识别和指纹识别的基本原理引言近年来,随着科技的不断发展,人脸识别和指纹识别成为了常见的生物特征识别技术。

这些技术在各个领域得到了广泛的应用,如安全监控、边境管理、金融领域等。

本文将详细介绍利用Matlab进行人脸识别和指纹识别的基本原理。

一、人脸识别的基本原理人脸识别是一种通过计算机技术对输入的人脸图像进行分析、比对和识别的过程。

其基本原理包括人脸检测、人脸预处理、特征提取和特征匹配等步骤。

1. 人脸检测人脸检测是人脸识别的第一步,其目的是从输入的图像中准确定位出人脸所在的位置。

在Matlab中,我们可以利用现有的人脸检测算法来实现。

常见的人脸检测算法包括Haar级联检测器和基于深度学习的卷积神经网络。

2. 人脸预处理为了提高后续特征提取和匹配的准确性,需要对人脸图像进行预处理。

在Matlab中,可以对图像进行灰度化、直方图均衡化、尺寸归一化等处理,以减少不必要的噪声和光照变化带来的影响。

3. 特征提取特征提取是人脸识别的核心步骤,其目的是从预处理后的人脸图像中提取出能够代表个体特征的信息。

在Matlab中,可以使用各种特征提取方法,如主成分分析(PCA)、线性判别分析(LDA)和局部二值模式(LBP)等。

这些方法能够有效地提取人脸的纹理、形状和结构等特征。

4. 特征匹配特征匹配是人脸识别的最后一步,其目的是将预处理和特征提取后的人脸图像与事先建立的人脸数据库中的样本进行比对,找到最接近的匹配结果。

在Matlab 中,可以使用各种匹配算法,如欧氏距离、余弦相似度和支持向量机等。

二、指纹识别的基本原理指纹识别是一种通过分析、比对和识别人类指纹纹线的生物特征识别技术。

其基本原理包括指纹图像采集、图像增强、特征提取和匹配等步骤。

1. 指纹图像采集指纹图像的采集通常使用光学传感器或者电容式传感器。

在Matlab中,可以利用图像处理工具箱中的函数实现指纹图像的采集和处理。

2. 图像增强为了提高指纹图像的质量,通常需要对其进行增强处理。

Matlab在指纹识别系统中的应用

Matlab在指纹识别系统中的应用

指纹识别系统的简述指纹识别提取的特征点有两个地方,一个是结束点和分叉点。

而指纹的自动匹配就是取决于这些区域对比的特征以及关系来达到识别的目的。

这些细节点比对的正确程度又很大的依赖于输入指纹的质量。

所以提高输入指纹的图片质量成为了识别的基础。

指纹图像加强步骤步骤简述grey-level fingerprint image:用matlab计算出图片的平均值mean 以及方差varianc.orientation image:显示指纹图像的纹路方向frequency image:显示指纹脊谷沿着该区域的指纹方向的频率region mask:判断指纹是否可恢复,可修复的指纹图像才能进入滤波器步骤Gabor filter:使图像平滑,消除原始图像噪点上两周与导师在时间方面做了一次交流,对第一步标准化得灰值图在matlab上进行了试验。

我们输入一个图像Image进去以后,通过matlab计算出它原始的平均值mean以及方差variance,分别记为M(I)和VAR(I),然后再输入我们的期望M以及期望VAR,将计算出M(I)和VAR(I),期望M以及期望VAR带入公式得出一个期望的G(i,j),得到一个标准化得灰值图。

具体步骤的实施1.标准化用论文中的公式计算出期望的灰度值,公式中包含期望的均值和方差以及已计算出的图像本身的均值和方差,得到标准化后的灰度图像G。

2.方向性图像图片会沿着指纹的方向显示出脊谷的方向,是一个指纹图像固有的特性。

1)将标准化后的图像G按块分。

2)计算每个像素中x与y方向上的梯度(利用Sobel Operator 索贝尔算子)3)运用论文中所给等式估计出每块的区域的中心方向。

(最小二乘估计)4)由于噪点的存在,毁坏了指纹的脊谷结构和细节点,所以我们所估计的方向未必准确。

又因为在没有单个点出现的区域以及邻域当中脊谷的方向变化不大,所以我们可以用低通滤波器去修改不正确的区域方向。

为了得到这个滤波器我们可根据论文中等的公式将方向图像转化为一个连续的矢量场。

Matlab指纹识别

Matlab指纹识别

指纹识别技术研究个人的指纹是独一无二的,两人之间不存在着相同的手指指纹。

每个人的指纹是相当固定的,不会随着人的年龄的增长或身体健康程度的变化而变化,但是人的声音等却存在较大变化的可能。

3)指纹样本便于获取,易于开发识别系统,实用性强。

目前已有标准的指纹样本库,方便了识别系统的软件开发;另外,识别系统中完成指纹采样功能的硬件部分也较易实现。

而对视网膜则难于采样,也无标准的视网膜样本库供系统软件开发使用,这就导致视网膜识别系统难以开发,可行性较低。

一个人的十指指纹皆不相同,这样可以方便地利用多个指纹构成多重口令,提高系统的安全性。

指纹识别中使用的模板并非最初的指纹图,而是由指纹图中提取的关键特征,这样使系统对模板库的存储量较小。

另外,对输入的指纹图提取关键特征后,可以大大减少网络传输的负担,便于实现异地确认,支持计算机的网络功能。

近些年来,电子信息技术的飞速发展,特别是传感技术、电子信号处理技术、计算机数据管理技术、计算机网络技术的飞速发展,为指纹识别技术的成型提供了强大的硬件支持。

与此同时,图形图像处理学、人工智能学、软件工程学等新兴学科的蓬勃发展也为指纹识别技术的进步提供了强有力的软件支持。

指纹识别的发展中,也存在自身的不足,如指纹识别系统性能的测试和评估标准的确立、相关软件的标准化问题都是有待进一步解决的。

指纹识别技术作为一项迅猛发展的新技术,有了软硬件等方面的强大保障,同时又有指纹识别自身的诸多优点,相信指纹识别技术一定会有更加美好的发展前景。

摘要:随着生物识别技术的不断发展,人们发现每个人的指纹具有唯一性和不变性。

因此指纹识别技术逐步发展为一种新的身份识别方式,并且凭借其良好的安全可靠性,大有取代传统身份识别方式的趋势。

本文简要介绍了指纹识别的基本步骤,分别是指纹图像预处理、指纹特征提取、指纹匹配。

在图像预处理中,依次介绍了规格化处理、图像增强、二值化处理和细化处理的方法。

预处理后将得到一幅宽度为一个像素的细化二值图像,然后通过特定的端点和交叉点的特征进行指纹匹配。

基于MATLAB图像处理的指纹特征点提取[权威资料]

基于MATLAB图像处理的指纹特征点提取[权威资料]

基于MATLAB图像处理的指纹特征点提取[权威资料] 基于MATLAB图像处理的指纹特征点提取摘要:伴随着信息科学技术飞速发展的步伐,非常多的系统更加关注安全的问题,因此,可靠的、安全的身份识别技术成为了众多系统安全应用的首选。

指纹图像特征提取作为指纹识别领域非常重要的研究部分,自然而然的引起了广大学者的关注。

本课题研究的主要内容便是指纹图像特征点提取以及伪特征点的剔除。

关键词:MATLAB;特征点;指纹识别;分叉点TP391.41随着科学技术以及社会的不断进步,基于口令、信物、数字等的传统的安全认证模式正在变得越来越脆弱[1],现代化的安全系统必须寻求全新的安全认证方法才能满足现代化的社会需求。

指纹识别技术是到目前为止应用最为广泛的个人身份认证技术,指纹所具备的稳定性以及唯一性更加的确定了指纹识别技术的应用地位,在计算机不断进步的同时,指纹识别技术以及算法也在不断的提升,甚至指纹传感器的性能也得到了大幅度的提升,所以,较高质量的指纹图像信息采集技术成为了安防领域以及身份认证领域研究的重点课题。

1 指纹图像特征1.1 指纹图像全局特征指纹的全局特征通常指的是常人通过肉眼就可以辨认出的特征,全局特征的基本纹路图案通常分为三种:环型(loop),弓型(arch)以及螺旋型(whorl)[2],这三个指纹图案是其余的指纹图案的基础,但是三种类型的分类相对比较粗略,并不能完全比对出采集到的指纹图像,但是对指纹进行分类却能够为指纹图案的比对查询提供方便。

通常情况下,指纹图像中的用于描述全局特征的区域称之为模式区,即通过指纹图像的模式区便可以将指纹图像进行分类划分,有的指纹算法提取的只是模式区的指纹数据,而有的指纹算法则仅仅提取模式区的一部分指纹数据。

指纹图像的核心点具体指的是指纹图像纹路的渐进中心,这个点的数据信息非常重要,通常被用作读取指纹时以及比对指纹时候的参考点,指纹图像的核心点被很多的指纹识别算法采用,但是局限是仅仅能够识别具备核心点的指纹图像。

利用Matlab进行人脸识别和生物特征提取

利用Matlab进行人脸识别和生物特征提取

利用Matlab进行人脸识别和生物特征提取人脸识别是一种广泛应用于安全系统中的生物特征识别技术。

随着计算机视觉和机器学习的发展,利用Matlab进行人脸识别和生物特征提取变得越来越普遍。

本文将介绍人脸识别的原理、Matlab在人脸识别中的应用以及生物特征提取的方法。

第一部分:人脸识别的原理人脸识别的基本原理是通过分析人脸的特征来识别一个人的身份。

在人脸识别中,最常用的方法是通过提取人脸的特征点并将其与已有的人脸模板进行匹配。

这些特征点可以是眼睛、鼻子、嘴巴等人脸的关键部位。

人脸识别还可以通过测量人脸的几何形状、纹理和肤色等来进行身份识别。

第二部分:Matlab在人脸识别中的应用Matlab是一种功能强大的科学计算和数据分析工具,也是进行人脸识别研究的重要工具之一。

Matlab提供了丰富的图像处理和模式识别函数,使得人脸识别的开发和实现更加便捷。

利用Matlab进行人脸识别需要以下几个步骤:1. 数据预处理:通过对输入图像进行灰度化、直方图均衡化等操作,提高图像的质量和对比度,从而提高识别准确率。

2. 特征提取:通过使用Matlab提供的函数,提取人脸关键特征点,并将其转化为特征向量。

常用的特征提取方法包括主成分分析(PCA)、线性判别分析(LDA)等。

3. 特征匹配:将提取的特征向量与已有的人脸模板进行匹配,通过计算相似度或距离来判断是否匹配成功。

4. 识别结果:根据匹配得到的相似度或距离,判断是否识别成功,并输出相应的结果。

除了人脸识别,Matlab还可以用于人脸识别算法的研究与改进。

例如,可以利用Matlab的机器学习工具箱来构建和训练一个自己的分类器,并对其进行性能评估和改进。

第三部分:生物特征提取的方法除了人脸识别,还有其他生物特征可以用于身份识别,例如指纹、虹膜、声纹等。

在Matlab中,同样可以利用相应的算法和工具进行生物特征提取。

1. 指纹识别:利用Matlab的图像处理函数,可以对指纹图像进行增强、分割和特征提取,然后使用比对算法进行指纹匹配和识别。

参考基于matlab的指纹图像特征提取

参考基于matlab的指纹图像特征提取

单位代码学号分类号密级毕业设计(论文) 基于Matlab的指纹图像特征提取院(系)名称专业名称学生姓名指导教师2012年 5 月15日基于Matlab的指纹图像特征提取摘要随着社会的发展,传统的基于信物或口令的安全系统显得越来越脆弱,不能适应现代安全系统的需要,因而人们需要研究更加安全可靠,防伪性能更好的安全系统。

指纹识别技术就是在这种背景下产生的,它借助人体的生理特征来提高身份识别的可靠性,目前已经成为国内外研究的热点。

指纹识别大体分为三个步骤:预处理、特征提取和特征匹配。

本文集中于研究特征提取部分,并针对特征提取中的一些关键算法和实现进行了研究和优化,其主要内容如下:在特征提取方面,本论文采用了一种8邻域编码纹线跟踪算法,标注出端点和分叉点来进行特征提取;在剔除伪特征点时,先进行去边缘处理,再根据不同类型伪特征点的特征,采用相应剔除算法。

实验表明,以上算法具有较小的运算量和较高的准确性。

上述算法在本文中均用Matlab实现,取得了较好的效果,为后续的特征匹配工作打下了良好的基础。

关键字:指纹特征提取,去除伪特征,算法仿真Matlab-based fingerprint image feature extractionAbstractWith the development of society, the traditional safety system based on keepsake and password has been weaker, Which can not meet the requirement of modern safety system. In this case, the need of a more reliable safety system with higher anti-fake performance prompts the appearance of fingerprint identification technique. This technique, with a higher safety and reliable performance, can improve the reliability of identity resolution in virtue of human body’s physiological feature, and it has been a research focus these days.Fingerprint identification falls into three parts, they are pretreatment, feature extraction, and characteristic matching. The thesis mainly focus feature extraction, it optimized and innovated some key algorithms of this parts, which can be described as follows: in the feature extraction part, the thesis used a eight-neighborhood coding ridge tracing algorithm, removing some templates of consecutive points and bifurcate points which have been optimized and removed in the thinning algorithm, and finally marking terminate points as well as bifurcate Points to execute feature extraction. Experiment result indicated that such new algorithm has a less operation but with a higher accuracy. All the algorithms introduced above have been implemented on Matlab, and result proved an adaptive good effect, which facilitates the next characteristic matching process.Key words:Feature extraction, Removing of false characteristic points, Algorithm simulate目录摘要 (I)Matlab-based fingerprint image feature extraction ......................................................................................... I I Abstract ........................................................................................................................................................... I I 目录 . (III)1绪论 (1)1.1引言 (1)1.2 生物识别技术简介 (1)1.3指纹识别技术 (2)1.3.1指纹识别简介 (2)1.3.2指纹识别原理 (3)1.3.3指纹识别的发展 (3)1.3.4指纹识别的优缺点 (4)1.3.5指纹识别系统 (5)1.4指纹图像特征提取 (6)1.5主要内容和结构安排 (7)1.5.1主要内容 (7)1.5.2结构安排 (7)2指纹图像的预处理 (9)2.1归一化 (9)2.2图像增强 (9)2.3二值化 (10)2.4细化 (11)2.5本章小结 (12)3 指纹图像特征的提取 (13)3.1指纹图像的特征 (13)3.1.1全局特征 (13)3.1.2局部特征 (13)3.2指纹图像特征点的提取 (14)3.2.1直接灰度图像法 (15)3.2.2基于细化图像的模板匹配法 (16)3.2.3算法比较 (1)3.3伪特征点的滤除 (18)3.3.1伪特征点分类及特点 (18)3.3.2伪特征点的剔除算法 (19)3.4特征提取算法Matlab算法仿真 (21)3.5本章小结 (24)4总结与展望 (25)4.1总结 (25)4.2展望 (25)致谢 (26)参考文献 (27)附录A 主程序 (30)附录B 提取特征点仿真程序 (31)附录C 剔除伪特征点仿真程序 (33)1绪论1.1引言随着社会经济的发展,人们的工作生活越来越依赖现代信息技术和网络技术,越来越多的场合,小到个人的虚拟账户密码,大到一个公司甚至是国家机密都需要对使用者、来访者进行身份识别,从而达到对自身的信息、资料以及财产进行可控制的保护,努力避免被不法分子非法入侵或者占有。

如何使用Matlab进行特征提取

如何使用Matlab进行特征提取

如何使用Matlab进行特征提取引言在计算机视觉、模式识别、信号处理等领域,特征提取是一个非常重要的任务。

通过提取数据中的关键特征,我们可以更好地理解数据、分类数据、改善算法性能等。

而Matlab是一个功能强大的科学计算软件平台,提供了丰富的工具和函数,可以帮助我们进行特征提取。

本文将介绍如何使用Matlab进行特征提取,并通过实例来展示其应用。

1. 数据预处理在进行特征提取之前,通常需要对数据进行预处理。

预处理的目的是将数据转化为适合进行特征提取的形式,以便提取到有意义的特征。

常见的预处理步骤包括数据清洗、降噪、归一化等。

在Matlab中,可以使用各种工具和函数来实现这些预处理步骤。

2. 特征选择特征选择是指从原始数据中选择出最具有区分性和重要性的特征子集。

通过特征选择,可以减少计算复杂性、提高算法性能、避免过拟合等。

Matlab提供了一些特征选择的方法和函数,如相关系数法、信息增益法、L1范数约束等。

3. 特征提取方法特征提取是指通过一系列转换和计算来从原始数据中提取出有意义的特征。

常见的特征提取方法有主成分分析、线性判别分析、小波变换等。

在Matlab中,可以使用相关的工具箱和函数来实现这些方法。

3.1 主成分分析(PCA)主成分分析是一种常用的线性降维方法,可以将高维数据降低到低维空间。

在Matlab中,可以使用princomp函数进行主成分分析。

下面是一个简单的例子:```matlabdata = randn(100, 3); % 生成100个3维随机数据coeff = princomp(data); % 进行主成分分析new_data = data * coeff(:, 1:2); % 降维到2维```3.2 线性判别分析(LDA)线性判别分析是一种常用的有监督降维方法,它通过寻找最佳投影方向,使得同类样本之间的距离最小化,异类样本之间的距离最大化。

在Matlab中,可以使用lda函数进行线性判别分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图形图像处理课程
大作业
姓名:
班级:
学号:
目录
问题描述 (2)
摘要 (3)
正文 (3)
1、指纹细节特征提取 (4)
2、指纹图像的预处理..................................错误!未定义书签。

3、指纹图像的特征提取..............................错误!未定义书签。

4、指纹特征的去伪 (6)
5、指纹特征提取和识别MATLAB实现 (7)
总结 (9)
附录: (9)
Matlab图形界面操作
------指纹图像细节特征提取
问题描述
期末运用学习的matlab知识对指纹图像进行细节特征提取,实现如下功能。

●实现指纹图像的细化。

●实现指纹图像的特征点提取。

●实现特征图像的细化去伪。

●编写代码实现上述功能。

摘要:
本次任务旨在完成对指纹图像的细化、去伪和特征点的提取。

采用了8邻域编码纹线跟踪算法,标注出端点和分叉点来进行特征提取。

用matlab 软件实现功能。

正文
1、指纹细节特征提取
对于一幅指纹的原始图像,为了使后续特征提取的操作能够正常有效的进行,必须对原始指纹图像进行一定的处理,即对原始图像进行预处理,预处理后对图像进行特征提取,包括端点和分叉点。

最后对图像进行指纹特征去伪。

2、指纹图像的预处理
指纹图像的预处理一般包括二值化和细化处理过程
(1)二值化
所谓二值化就是将灰度图像转化为灰度值为0、1组成的黑白图像,0为背景灰度,1为纹线点灰度,它是指纹图像处理中重要的一步。

由于指纹图像的方向特征、细节点位置等特征的提取以及匹配都跟像素点灰度值的多少没关系,只跟指纹图像的脊线的形状、走向有关系,因此二值化处理不会丢失指纹图像的特征信息,另外二值化还可以方便图像信息的存储,节约存储空间,并且方便了后续的计算处理。

常用的二值化方法有:固定阀值法、局部自适应阀值法等。

(2)细化
细化是图象分析、信息压缩、特征提取、模式识别常用的基本技术。

它是在不改变图像像素的拓扑关系的条件下,连续擦除图像边缘像素,使纹线最终成为一个像素宽。

细化算法的迭代必须收敛且不能破坏纹线的连接性,不能引起纹线的逐步吞食,还要尽可能的保护指纹的细节特征,细化的骨架也要尽可能接近纹线中心线,要求算法简单、高效。

常用的细化算法包括逐层剥离法、距离变换法。

代码实现:
I=im2bw(origin);%二值化
%细化指纹图像
[M,N]=size(I);
for i=2:M-1
for j=2:N-1
if I(i,j)==0
if(I(i-1,j)==0&I(i,j+1)==0)|(I(i-1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I( i,j-1)==0)|(I(i+1,j)==0&I(i,j+1)==0)
I(i,j)=1;
else
I(i,j)=0;
end
end
end
end
subplot(2,2,2);imagesc(I);
xlabel('细化后指纹图像')
3、指纹图像的特征提取
指纹图像的特征提取采用了8邻域编码纹线跟踪算法,标注出端点和分叉点来进行特征提取。

传统的特征提取方法主要有两种:第一种是直接从原始指纹图像上进行细节特征提取,另一种是从细化后的指纹图像上进行特征提取。

第一种算法比较复杂,受噪声干扰影响较大,特征点定位不精确,大多数系统都采用了第二种方法。

代码实现:
%特征点提取(端点或分叉点)
t=0;
for i=2:M-1
for j=2:N-1
if I(i,j)==0
n=I(i-1,j-1)+I(i-1,j)+I(i-1,j+1)+I(i,j-1)+I(i,j+1)+I(i+1,j-1)+I(i+1,j) +I(i+1,j+1);
if(n==5|n==7)
t=t+1;
x(t)=j;
y(t)=i;
end
end
end
end
subplot(2,2,3);imagesc(I);
xlabel('指纹特征提取图像')
4、指纹特征的去伪
提取指纹图像的细节特征,是在细化图像进行的。

由于图像质量和噪声的干扰,经过预处理后的细化图像上存在大量的伪特征点。

伪特征一般具有以下特点:大部分处于图像边缘;在图像内部的伪特征点距离较近,两个或多个伪特征同时存在于很小的区域内。

根据指纹图像伪特征分布特点提出两种去伪方法:首先对于图像边缘的点,采用指纹图像切割的方法,即对边缘的点直接切除掉;然后利用最短距离阈值法去除距离较近的特征点。

代码实现:
for i=1:t-1
for j=i+1:t
d=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);
if d<6%去除距离较近的特征点
x(i)=-1;y(i)=-1;x(j)=-1;y(j)=-1;
end
end
end
c=0;
d=0;
for i=1:t
if(x(i)>=10&x(i)<165)&(y(i)>=10&y(i)<140)%去除边缘的特征点c=c+1;l(c)=x(i);d=d+1;h(d)=y(i);
end
end
x=find(x);y=find(y);
subplot(2,2,4);imagesc(I);
xlabel('细化去伪后的指纹图像特征点') 5、指纹特征提取和识别MATLAB实现
图一(1)用匹配模板法细化指纹图像
图二(2)特征点提取图像
图三(3)去伪后指纹图像
图四
总结
通过指纹图像的特征提取和识别,进一步了解了图像处理。

刚开始有很多东西都做不出来,无法实现,最后在图书馆查找资料,结合书本知识,最终实现了指纹的特征提取。

附录
参考文献:
【1】余胜威.MATLAB优化案例分析与应用(进阶篇).清华大学出版社,2015【2】杨丹,赵海滨,龙哲.MATLAB图像处理实例详解.清华大学出版社,2013【3】实用matlab图像和视频处理Oge Marques.清华大学出版社
源代码:
clc,clear,close all
warning off
feature jit off
origin=imread('234.png');
subplot(2,2,1);imagesc(origin);
colormap(gray);xlabel('原始图像')
I=im2bw(origin);%二值化
%细化指纹图像
[M,N]=size(I);
for i=2:M-1
for j=2:N-1
if I(i,j)==0
if(I(i-1,j)==0&I(i,j+1)==0)|(I(i-1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I( i,j-1)==0)|(I(i+1,j)==0&I(i,j+1)==0)
I(i,j)=1;
else
I(i,j)=0;
end
end
end
end
subplot(2,2,2);imagesc(I);
xlabel('细化后指纹图像')
%
t=0;
for i=2:M-1
for j=2:N-1
if I(i,j)==0
n=I(i-1,j-1)+I(i-1,j)+I(i-1,j+1)+I(i,j-1)+I(i,j+1)+I(i+1,j-1)+I(i+1,j) +I(i+1,j+1);
if(n==5|n==7)
t=t+1;
x(t)=j;
y(t)=i;
end
end
end
end
subplot(2,2,3);imagesc(I);
xlabel('指纹特征提取图像')
hold on;plot(x,y,'bo');hold off;
for i=1:t-1
for j=i+1:t
d=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);
if d<6%去除距离较近的特征点
x(i)=-1;y(i)=-1;x(j)=-1;y(j)=-1;
end
end
end
c=0;
d=0;
for i=1:t
if(x(i)>=10&x(i)<165)&(y(i)>=10&y(i)<140)%去除边缘的特征点
c=c+1;l(c)=x(i);d=d+1;h(d)=y(i);
end
end
x=find(x);y=find(y);
subplot(2,2,4);imagesc(I); xlabel('细化去伪后的指纹图像特征点') hold on;plot(l,h,'bo');hold off;。

相关文档
最新文档