当前位置: 首页 > news >正文

Matlab课程设计——手指静脉识别项目

手指静脉识别项目

项目方案设计介绍

本项目实现手指图像的处理和匹配算法,需要处理的数据是本人不同手指的图像,首先经过图像处理,使得指静脉的纹理增强凸显处理,然后将所有的这些图像进行相互间的匹配,检验类内和类间的匹配度,观察其是否能够明显区分开来,并据此计算正确率。

在本项目中,由于是基于算法原型的研究,因此我们选用了操作便捷的Matlab R2019b软件作为运行环境,在Windows 10 Pro for Workstation操作系统中实现算法。

算法分为以下几个过程:

图像预处理过程中,需要增强图像,提取手指区域,为识别做准备。拟采用CLAHE、直方图均衡、二值化等算法,以达到增强图像的效果;拟采用边缘检测算法实现手指的识别和提取

图像的特征提取和匹配过程中,拟采用两类不同的方法。一是局部不变特征提取算法。这些算法具有检测图像中的特征点,并对特征点的局部区域进行描述和匹配的功能。二是针对二值化图像的模板匹配,检测其匹配度。

系统识别性能

SIFT——正确率93.625%

SURF——正确率86.1875%

归一化二维互相关模板匹配——正确率99.5625%

文件结构说明

注意:以下代码中涉及的文件夹需要先自行创建,使用其它数据来源需要先自行更改字符段中涉及的文件夹。代码中的“.\590”文件夹是本人指静脉数据来源文件夹。文件夹目录结构如下:
\图像处理与机器视觉创新实践:.
│ 20191121《机器视觉创新实践》课题研究任务书(一).pdf
│ 590.zip
│ cut.m
│ gaborfilte.m
│ gaborfilter2.m
│ ImageEnhancement.m
│ img2deg.m
│ input2FingerImg.m
│ README.md
│ LICENSE
│ sift-图像增强实现2-1.mat % 由于SIFT算法耗时较长,其结果被保存下来以便多次使用
│ SIFTpair.asv
│ SIFTpair.m
│ SURFpair.m
│ TemplateMatching.m
│ tmp.key
│ tmp.pgm

├─590
├─siftDemoV4
│ appendimages.m
│ basmati.pgm
│ book.pgm
│ box.pgm
│ defs.h
│ LICENSE
│ Makefile
│ match.c
│ match.m
│ README
│ scene.pgm
│ showkeys.m
│ sift
│ sift.m
│ siftWin32.exe
│ tmp.key
│ tmp.pgm
│ util.c

运行指南

提取ROI区域

运行cut.m

图像增强与二值化

运行ImageEnhancement.m

Gabor图像滤波

运行gaborfilte.m

SIFT算法特征检测与匹配

在执行此程序前需要将siftDemoV4文件夹及其子文件夹添加到路径,在matlab中右键菜单即可操作。
运行SIFTpair.m

SURF算法特征检测与匹配

运行SURFpair.m

归一化互相关模板匹配

运行TemplateMatching.m

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 项目名称:C语言在线学习平台(README)
  • nginx配置文件说明
  • 一文掌握Prometheus实现页面登录认证并集成grafana
  • 小程序图片下载保存方法,图片源文件保存!
  • 用python去爬取小说网址的小说保存到本地全过程
  • 【接口自动化_09课_大量响应报文处理及加解密、签名处理】
  • Kafka系列之:Kafka存储数据相关重要参数理解
  • Nginx 不转发请求 IP
  • tinymce富文本支持word内容同时粘贴文字图片上传 vue2
  • Framework源码面试之Handler面试集合
  • Laravel+swoole 实现websocket长链接
  • Netty Websocket
  • 【数据结构进阶】二叉搜索树
  • DC-1靶场打靶第一次!!!!冲冲冲!
  • 算法日记day 16(二叉树的广度优先遍历|反转、对称二叉树)
  • 分享的文章《人生如棋》
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Babel配置的不完全指南
  • iOS 颜色设置看我就够了
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js学习笔记
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux下的乱码问题
  • Odoo domain写法及运用
  • 来,膜拜下android roadmap,强大的执行力
  • 聊聊flink的BlobWriter
  • 七牛云假注销小指南
  • 区块链共识机制优缺点对比都是什么
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通信类
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • python最赚钱的4个方向,你最心动的是哪个?
  • 交换综合实验一
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • #、%和$符号在OGNL表达式中经常出现
  • #mysql 8.0 踩坑日记
  • #window11设置系统变量#
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $nextTick的使用场景介绍
  • (06)金属布线——为半导体注入生命的连接
  • (1)SpringCloud 整合Python
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (七)Flink Watermark
  • (一)Linux+Windows下安装ffmpeg
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)负载均衡,回话保持,cookie
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net 调用海康SDK以及常见的坑解释
  • .NET导入Excel数据
  • @SuppressWarnings(unchecked)代码的作用
  • @synthesize和@dynamic分别有什么作用?
  • @基于大模型的旅游路线推荐方案
  • [2544]最短路 (两种算法)(HDU)