一、设计概述

  1. 题目:指纹图像的增强方法
  2. 基本要求:读取初始指纹图像,设计程序,实现指纹图像的增强,使指纹的纹理更加清晰,便于识别。
  3. 指纹图像增强的意义:

指纹是人类手指末端指腹上由凹凸的皮肤所形成的纹路。指纹能使手在接触物件时增加摩擦力,从而更容易发力及抓紧物件。是人类进化过程式中自然形成的。目前尚未发现有不同的人拥有相同的指纹,所以每个人的指纹也是独一无二。由于指纹是每个人独有的标记,近几百年来,罪犯在犯案现场留下的指纹,均成为警方追捕疑犯的重要线索,使得指纹识别技术得到了飞快的发展,指纹图像的识别也就变得非常具有意义,但是通过传感器等方式获取到的指纹图像往往是比较模糊的,识别率相对较低,此时,指纹图像增强就孕育而生,通过对指纹图像的增强处理,得出了具有较清晰的图像,是识别率更高。

二.设计思路:指纹图像增强的主要步骤及方法

  1. 读取指纹图像
  2. 指纹图像灰度化处理
  3. 指纹图像平滑处理
  4. 指纹图像的腐蚀处理
  5. 指纹图像的锐化处理
  6. 指纹图像二值化
  7. 指纹图像纹理的细化处理

三.具体的处理流程及其分析

1.指纹图像的读取

将通过传感器或者别的方式获取到的指纹图像读取到matlab中;如 .bmp .jpg等格式的图片文件。

通过matlab实现:

I=imread(‘文件路径+图像名.jpg');

2. 指纹图像灰度化处理

数字图像可分为灰度图像和彩色图像。通过灰度化处理和伪彩色处理,可以使伪彩色图像与灰度图像相互转化;灰度化就是使彩色的R,G,B分量值相等的过程

I=rbg2gray(I)

3.指纹图像平滑处理(此处我们使用的是中值滤波的方法处理)

图像平滑的主要目的是减少图像噪声。图像噪声来自于多方面,有来自于系统外部的干扰(如电磁波或经电源窜进系统内部的外部噪声),也有来自于系统内部的干扰(如摄像机的热噪声、电器机械运动而产生的抖动噪声等内部噪声)。实际获得的图像都因受到干扰而含有噪声,噪声产生的原因决定了噪声分布的特性及与图像信号的关系。减少噪声的方法可以在空间域或频率域处理。在空间域中进行时,基本方法就是求像素的平均值或中值;在频率域中则运用低通滤波技术。

图像平滑总是要以一定细节模糊为代价,因此如何尽量平滑掉图像的噪声,又尽量保持图像细节,是图像平滑研究的主要问题之一。

此处我们使用的是中值滤波的方法处理。中值滤波是一种非线性处理技术,由于它在实际运算过程中并不需要知道图像的统计特性,所以比较方便。在一定的条件下,中值滤波可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效;但是,对一些细节多,特点是点、线、尖顶细节较多的图像则不宜采用中值滤波的方法。中值滤波的目的是在保护图像边缘的同时,去除噪声。

中值滤波的特性:

(1) 对某些输入信号中值滤波具有不变性

(2)中值滤波的去噪声性能

中值滤波可以用来减弱随机干扰和脉冲干扰。由于中值滤波是非线性的,因此对随机输入信号数学分析比较复杂。中值滤波的输出与输入噪声的概率密度分布有关,而领域平均法的输出与输入分布无关。中值滤波在抑制随机噪声上要比领域法差一些,但对于脉冲烦扰,中值滤波是非常有效的。

(3)中值滤波的频谱特性:

由于中值滤波是非线性运算,在输入与输出之间的频率上不存在一一对应的关系,故不能用一般线性滤波器频率特性分析方法。采用总体实验观察法,经大量实验表明,中值滤波器的频率响应与输入信号的频谱有关,呈现不规则波动不大的曲线,中值滤波幅谱特性起伏不大,可以认为信号经中值滤波后,频谱基本不变。

中值滤波的matlab实现:

I1=medfilt2(I,[5,5]);

figure,imshow(I);

figure,imshow(I1);

对带有噪声的指纹图像进行预处理,经过滤波后的图像能够消除图像中的一部分干扰影响。

  1. 指纹图像的腐蚀处理

指纹图像腐蚀运算后使得指纹纹路更细,便于后续的处理,但指纹图像显得模糊,但是接下来我们将对指纹图像进行锐化,使得图像边缘更加清晰。

灰度腐蚀的matlab实现程序:

s=ones(3,3);

I2=imerode(I1,s);

figure,imshow(I2);

  1. 指纹图像的锐化处理

图像锐化即对图像进行处理,使图像的边缘变得鲜明。目的是为了突出图像的边缘信息,加强轮廓特征,以便于人眼的观察和机器的识别对比。

这里我们采用的是Sobel算子对图像增强。Matlab实现程序如下

I3=double(I2);

h=fspecial('sobel');

K=filter2(h,I3);

figure,imshow(K)

K1=I3-K;

figure,imshow(K1);
指纹图像竖直方向的纹路有很大的残缺,显然该图像的清晰度不令人满意,为了获得较清晰的指纹图像,我们将对上述图像进行修补,本文所使用的方法是将锐化处理前的图像逆时针旋转90度,再以上述同样的方法对图像进行锐化增强,由此得到的图像再顺时针旋转90度。
matlab实现程序:
%图像逆时针旋转90度再进行锐化
I=imread('f:\image2_0.jpg');
J=double(I);
h=fspecial('sobel');
K=filter2(h,J);
figure,imshow(K)
K1=J-K;
figure,imshow(K1');
imwrite(K1','f:\s2.jpg');

先将两幅指纹图像进行配准,配准完成后,再进行简单的融合。
%两幅图像配准
I1=imread('f:/s1.jpg');
I2=imread('f:/s2.jpg');
J1=double(I1);
J2=double(I2);
K1=fft2(J1);
K2=fft2(J2);
out=dftregistration(K1,K2,1);

两幅图像进行配准后再相加的的MATLAB程序

%配准后相加

I1=imread('f:/s1.jpg');

I2=imread('f:/s2.jpg');

I4=double(I1);

I5=double(I2);

[width,height]=size(I5);

NewR2=zeros(width,height);

for i=1:width

for j=1:height

source_x=i+1;

source_y=j+1;

if(source_x>width||source_y>height)

NewR2(i,j)=0;

else

if(source_x/double(uint16(source_x))==1.0&source_y/double(uint16(source_y))==1.0)

NewR2(i,j)=I5(int16(source_x),int16(source_y));

End

end

end

end

I6=NewR2;

I3=uint8(I4);

I7=uint8(I6);

figure,imshow(I3);

figure,imshow(I7);

K=imadd(I3,I7,'uint16');

figure,imshow(K,[]);

6.指纹图像的二值化

对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。具体要求为:

  1. .脊线中不出现空白。
  2. .二值化后的脊线基本保持原来指纹的特征。
  3. .指纹的纹线不应有太多的间断和相连。
  4. .指纹纹线间的间距应大致相同。
  5. .由于指纹识别系统的特性,二值化算法的速度也应是一个评价指标。

二值化的matlab实现:

%二值化

I=imread('f:\image3.jpg');

level=graythresh(I);

J=im2bw(I,level);

figure,imshow(J);

imwrite(J,'f:\image4.jpg')

7.指纹图像的细化

细化又称骨骼化,是指在不影响图像的拓扑关系的情况下,将图像中宽度大于一个像素的线条转变为只有一个像素宽度的图像的处理过程。

细化的matlab实现:

%细化

I=imread('f:/image4.jpg');

J=I(:,:,1)>160;

K=bwmorph(~J,'thin','inf');

figure,imshow(~K);

四、思考及总结

在此课程设计完成之际,向我们的邓成老师表示衷心的感谢。因为通过本次的课程设计,我们能够有一个很好的机会对过去学到的知识进行巩固和实践。由于未学习过数字图像这门课程,并且对matlab软件的掌握也不够精通,在设计的过程中遇到不少的陌生名词,我们基本是边学习边进行的课程设计。能力有限,设计的结果并不尽如人意,未能将所有的思路投入到实践中。

我同时也要感谢我身边的同学,在设计期间给予了我不少有益的信息和建议,使我顺利解决了许多问题,在此向大家表示真诚的感谢。

最后衷心地感谢信息科学与工程学院领导与老师,为我们提供了良好的学习环境和实践机会,给予了我们许多有益的指导与帮助。

Matlab软件设计

  1. 课程设计题目:指纹图像增强方法
  2. 基本指标:读取指纹图像,增强图像,输出图像。
  3. 设计思路:

使用matlab图形界面系统gui来实现主界面。通过鼠标点击控件,读取目标图片,把目标图片写入指定路径(默认‘f:\’)。对目标图片进行增强处理,显示每一步的增强图像。保存最终增强图像在指定路径中。主界面button选项有“打开文件”,“指纹图像增强”,“关闭窗口”,“帮助”。

  1. 主界面显示

五、窗口控件对象和菜单对象及其功能代码实现

1、‘打开文件’ 按键 和‘ openpic’菜单选项

实现读取目标图像和保存在规定路径下的操作。

查找图像,文件不存在则关闭,存在则保存到F:\下并显示图像。

2、‘指纹图像增强’ 按键

通过平滑,腐蚀,锐化,二值化,细化等操作使图像增强,显示并且保存图像。

首先用rbg2gray()函数将图像转换成灰度图。Medfilt2(),imerdode(),分别进行平滑,腐蚀处理。锐化处理采用sober算子对原图像和翻转后图像锐化,采用dftregistration()函数配准两图像,用imadd对配准的两图像进行图像匹配。Im2bw()和bwmorph()分别进行二值化和细化处理。最终得到增强后的指纹图像。并且在每一步的过程中显示图像。

3、‘关闭窗口’按键和closepic菜单选项

关闭打开的所有窗口。

Close all简洁明了地关闭所有窗口。

4、‘帮助’按键和‘help’菜单选项

给出关于软件使用的文本窗口。

Winopen()打开指定目录下的“关于”文本文档。

六、操作结果及其显示

1.打开文件,选择图像(image.jpg)

2.图像增强,显示图像

3.关闭窗口

六、其他

1.主界面的图像

在初始化函数function untitled_OpeningFcn()中进行显示。

MATLAB指纹识别相关推荐

  1. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

  2. 【Matlab指纹识别】指纹识别匹配门禁系统【含GUI源码 587期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别匹配门禁系统[含GUI源码 587期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  3. MATLAB指纹识别系统GUI界面实现

    MATLAB指纹识别系统GUI界面实现 课题背景 人的指纹各不相同,指纹可以用来确定人的身份,指纹识别技术作为最传统.最成熟的生物识别方式之一,已经在很多领域得以应用.如何对指纹的基本特征进行有效提取 ...

  4. Matlab 指纹识别技术

    GUI框架链接:MATLAB指纹识别[库外识别,预警,GUI].zip_指纹识别是什么技术,atlab-专业指导文档类资源-CSDN下载 指纹识别技术文档 1指纹识别的引入和原理 1.1 指纹的基本知 ...

  5. 基于matlab指纹识别论文,毕业论文-基于Matlab的指纹识别

    毕业论文-基于Matlab的指纹识别 1 毕 业 论 文 基于 Matlab 的指纹识别 姓 名 院(系) 专业班级 学 号 指导教师 职 称 论文答辩日期 2 摘摘 要要 随着科学技术的不断发展,自 ...

  6. 基于matlab的指纹识别程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 基于matlab的指纹识别程序 前言 一.程序思路是什么? 二.预处理步骤 1.指纹图像的灰度化处理 2.指纹图像的归一化与分割处理 ...

  7. 基于MATLAB软件的指纹识别研究

    基于MATLAB软件的指纹识别研究 人的指纹各不相同,里面藏着很多秘密.指纹可以用来确定人的身份,广泛用于刑侦.加密.考勤等领域,最近还出现了用指纹进行手机解锁等应用.还有一些人声称指纹与人的健康.性 ...

  8. 小区门禁MATLAB的指纹识别仿真

    小区门禁MATLAB的指纹识别仿真 一.课题介绍 当今社会每个人都需要通过身份识别来完成一些事情,而不同于传统识别方法可能回来带安全隐患,生物特征识别成为一项可靠便捷的识别方法.目前有很多生物识别技术 ...

  9. matlab 函数return_基于MATLAB的指纹识别系统【论文,GUI】

    一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...

  10. matlab 二值化_基于MATLAB的指纹识别系统[GUI界面+万字技术文档+语音播报]

    一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...

最新文章

  1. node.js学习笔记之promise
  2. 制造业与计算机有关的岗位,天津人力资源:零批餐饮挺缺人 银行地产岗位少...
  3. 5.1.1 IO设备的概念与分类
  4. spring事物不起作用
  5. 让你觉得破坏了封装性的扩展方法
  6. 《MySQL管理之道:性能调优、高可用与监控》china-pub首发!
  7. 6.22打包建立ISS虚拟目录,安装完运行你想运行的程序
  8. 业界最强!阿里“平头哥”首款芯片发布:应用于5G、自动驾驶等领域
  9. 2018年智能手表出货量曝光 苹果Apple Watch占据半壁江山
  10. 关于if __name__ == '__main__'的理解
  11. 计算某个目录下所有文件的MD5值
  12. 三菱gxworks3安装失败_GX Works3|GX Works3(三菱PLC编程软件)下载官方中文版 附序列号 - 欧普软件下载...
  13. cocos2dx +vs2012安装教程
  14. 小狸智能原创工具·AI伪原创API工具
  15. 《计算机视觉特征提取与图像处理(第三版)》笔记/第一章(1)计算机视觉基础
  16. 百度获取天气预报接口
  17. 全球最受欢迎电商平台有哪些?这些平台怎么快速增加销量?
  18. iOS Mac Catalyst
  19. Charles设置代理后无法上网问题
  20. 解决!Android Studio 设计 UI 界面控件全在左上角

热门文章

  1. 日记:2019新年计划,每日计划的思维导图
  2. Spring boot 集成 WebService(简单使用、文件上传下载)
  3. Linux中CPU使用率低负载高
  4. dspbios设计指南_视频广告设计者指南
  5. .com.cn域名是什么?.com.cn域名有哪些优势?
  6. IEEEtran模板的参考文献管理问题a missing \item. \begin{thebibliography}{}
  7. [论文评析]Long-Tail Learning via Logit Adjustment,ICLR,2021
  8. 上传文件到服务器(在微信小程序修改头像用到)
  9. 做绿色数据中心基础设施建维服务认证有哪些好处?
  10. UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x93 in position 4: illegal multibyte sequen