这两天正好有点琐碎的时间,就将两年前未开发完毕的指纹识别项目翻出来继续写了写。
运行环境:
 中控指纹采集器
 Win10操作系统
 .netframework4.0
 Sqlserver2008及以上
源码已经上传到微信公众号【雄雄的小课堂】中,回复“指纹识别源码获取”即可下载。

一、 指纹识别项目运行流程:
 用户注册:输入用户名、密码以及采集完整的3遍指纹。
 用户登录:输入注册时的用户名,使用注册时的指纹,即可登录成功
 采集指纹时,3次需要一样的,如果不一样,提示采集失败
 登录时,需要用户名和指纹对应,如果不对应,则提示登陆失败,采集器闪红灯以及有警告声响
二、 指纹识别项目中的部分截图:

  1. 注册页面:

    2.登录页面

    3.如果没有指纹识别采集器,提示:

    4.指纹采集3次成功:

    5.登录成功:

    6.登陆失败:


三、 部分代码:

  1. 采集指纹的代码
/// <summary>/// 采集指纹/// </summary>public void Caiji(){if (this.axZKFPEngX1.InitEngine() == 0){try{this.IsGoodQuality = false;this.richTextBox1.Clear();this.axZKFPEngX1.CancelEnroll();this.axZKFPEngX1.EnrollCount = 10; // 取样次数 ,3次this.axZKFPEngX1.BeginEnroll();ShowMsgInfo("开始登记指纹,推荐将您的食指放\n\n在采集器上进行登记\n\n(如果有困难,您也可以使用其它手指)……");// MessageBox.Show("开始登记指纹");}catch{MessageBox.Show("出现异常");}}else{MessageBox.Show("请买个指纹采集仪", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);}}
  1. 将指纹登记特征模版保存到指纹识别高速缓冲空间,并显示指纹登记结果
/// <summary>/// 将指纹登记特征模版保存到指纹识别高速缓冲空间,并显示指纹登记结果/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void axZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e){if (e.actionResult){this.textBox1.Text = this.axZKFPEngX1.GetTemplateAsString();int name = this.axZKFPEngX1.AddRegTemplateStrToFPCacheDB(fpcHandle, 4, this.axZKFPEngX1.GetTemplateAsString());MessageBox.Show("指纹登记成功! ", "提示! ", MessageBoxButtons.OK, MessageBoxIcon.Information);//ShowMsgInfo("指纹登记成功!");//保存所登记的指纹}else{MessageBox.Show("指纹登记失败! ", "提示! ", MessageBoxButtons.OK, MessageBoxIcon.Stop);}}

3.取得指纹初始特征,0:好的指纹特征 1:特征点不够

/// <summary>/// 取得指纹初始特征,0:好的指纹特征  1:特征点不够/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void axZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e){String strTemp = "指纹质量";if (e.aQuality != 0){strTemp = strTemp + "不符合标准!";this.labelResults.Text = "当前指纹特征点不够,请继续……";//MessageBox.Show("当前指纹特征点不够,请继续……! ", "提示! ", MessageBoxButtons.OK);}else{strTemp = strTemp + " 符合指标要求。";this.IsGoodQuality = true;this.labelResults.Text = "指纹特征点良好,请保存";//MessageBox.Show("指纹特征点良好,请保存 ", "提示! ", MessageBoxButtons.OK);}if (this.axZKFPEngX1.EnrollIndex != 1){if (this.axZKFPEngX1.IsRegister){if (this.axZKFPEngX1.EnrollIndex - 1 > 0){strTemp = strTemp + '\n' + "采集状态:还需要按手指 " + Convert.ToString(this.axZKFPEngX1.EnrollIndex - 1) + " 次!";}}}ShowMsgInfo(strTemp);}

4.获取指纹图像并在窗口中实时显示

 /// <summary>/// 获取指纹图像并在窗口中实时显示/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void axZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e){this.labelResults.Text = "";Graphics g = pictureBox1.CreateGraphics();Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);g = Graphics.FromImage(bmp);int dc = g.GetHdc().ToInt32();this.axZKFPEngX1.PrintImageAt(dc, 0, 0, bmp.Width, bmp.Height);g.Dispose();this.pictureBox1.Image = bmp;}

5.指纹比对以及控制声音和灯光的关键代码

this.axZKFPEngX1.CancelEnroll();//  string saveTemplates = this.textBox1.Text;string curTempldates = this.axZKFPEngX1.GetTemplateAsString();bool regChange = true;//调用根据姓名查询指纹的方法string old_zhiwen = ud.Login(txtname.Text);if (this.axZKFPEngX1.VerFingerFromStr(ref old_zhiwen, curTempldates, false, ref regChange)){MessageBox.Show("登录成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}else{KongZhi(11, 0);  //关闭绿灯KongZhi(13, 1); //打开声音KongZhi(12, 1); //打开红灯KongZhi(13, 0); //关闭声音KongZhi(12, 0); //打开红灯KongZhi(11, 0);  //关闭绿灯KongZhi(13, 1); //打开声音KongZhi(12, 1); //打开红灯KongZhi(13, 0); //关闭声音KongZhi(12, 0); //打开红灯MessageBox.Show("登录失败!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);}

四、 整个运行流程视频:https://v.qq.com/x/page/u30471pj5j5.html

欢迎关注公众号:雄雄的小课堂

使用中控指纹采集器开发指纹识别案例V1.0相关推荐

  1. 中控指纹采集器开发指纹识别项目(说明)

    历史指纹识别相关开发版本: 指纹识别开发1.0,开发时间:2018-01-04 指纹识别开发2.0,开发时间:2018-01-04 指纹识别开发3.0,开发时间:2020-01-06 可以从时间上看的 ...

  2. java民生银行支付接口_民生付商户端开发手册和接口规范V1.0.0.doc

    民生付商户端开发手册和接口规范V1.0.0 中 国 民 生 银 行 民生付商户端开发手册 及接口规范 版本V1.0.0 2015年 06月24日 文档修订记录 版本号*变化状态简要说明日期变更人批准人 ...

  3. android开发-指纹识别

    在Android 6.0中google终于给Android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚 ...

  4. Android开发 指纹识别

    1.添加指纹识别权限: <uses-permission android:name="android.permission.USE_FINGERPRINT"/> 2.获 ...

  5. 小成开发日记---利用Qt/C++实现基于Udp协议的网络聊天室(分服务端和客户端的开发【轻聊v1.0.1】)

    作者:小成Charles 原创作品 转载请标注原创文章地址:https://blog.csdn.net/weixin_42999453/article/details/112363393 一.引言 最 ...

  6. 网站开发规范及流程v1.0

    Web 开发的分散性和交互性,决定了 Web 开发必须遵从一定的开发规范和技术约定,只有每个开发人员都按照一个共同的规范去设计.沟通.开发.测试.部署,才能保证整个开发团队协调一致的工作,从而提高开发 ...

  7. 指纹识别综述(6): 现场指纹识别

    指纹识别综述系列 1.导论:2.指纹传感器:3.特征提取:4.匹配:5.分类与检索:6.现场指纹识别: 7.指纹合成: 8.唯一性: 9.指纹系统安全:10.深度学习方法:11.专利. 本文主要基于& ...

  8. Android 如何开发指纹支付

    一.为什么要指纹支付 趋势,就这么简单. 二.什么是指纹支付 指纹支付是一种便捷的生物认证支付方式,它让用户摆脱繁琐的密码.短信认证,便捷性得到大大的提高.提高应用的易用性,使用率和用户留存率. 三. ...

  9. linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...

    指纹作为人体的身体特征,具有唯一性.稳定性和不易盗用等特点.随着指纹识别理论逐渐成熟.指纹采集工具这一难题得到解决,指纹识别已经成为目前最广泛应用的生物识别之一,逐渐取代了传统的认证识别方式,广泛应用 ...

  10. android 光学指纹 流程,2017手机指纹识别趋势盘点:光学指纹成为现实

    进入2017年,手机指纹识别的格局又有了新的变化,光学指纹识别也开始崭露头角,内嵌于屏幕的指纹识别将会颠覆手机外观设计,而今年指纹识别芯片厂商的市场份额也有了明显的变化,这背后的驱动力是各家指纹识别技 ...

最新文章

  1. 5G 标准 — R18
  2. sqlserver 改变编码格式_PR基础教程 | Day7:导出及格式讲解
  3. php 异常 重试,Python中异常重试的解决方案详解
  4. 【渝粤教育】国家开放大学2018年秋季 0688-22T老年精神障碍护理 参考试题
  5. oracle dplsql.bsq,Oracle PLSQL语言初级教程之过程和函数
  6. 【洛谷】P1052 过河(状压dp)
  7. Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
  8. python文本模糊匹配
  9. 使用duet或spacedesk实现iPad作为电脑扩展屏幕
  10. ksz8863调试总线,
  11. 2个方式快速解决:Word背景图片怎么设置
  12. 波浪数,51nod1788,根号分治+Meet in the Middle
  13. 菜鸟知识-五大智能手机操作系统
  14. 最新阿里云服务器和GPU服务器长期优惠活动价格表
  15. 【通識:人生哲學與幸福】青年心理學 Part2 成熟
  16. pdps安装oracle12安装,PDPS安装使用过程问题点处理
  17. 32位系统装8g内存条?能用吗
  18. 【智能制造】智能制造技术与数字化工厂应用!
  19. 现在流行什么邮箱?职场解读:《你好,李焕英》为什么火了?
  20. 在Linux命令行中使用tcpdump的简介

热门文章

  1. win10桌面计算机打不开,win10“此电脑”双击打不开,任何文件夹都打不开
  2. SQL注入漏洞-SQL注入中information_schema的作用
  3. Windows设置redis开启自动启动
  4. 在 Flutter 中创建一个动画屏幕
  5. python 日期选择(包含时间选择)
  6. java gis 矢量数据结构_2.4. 矢量数据结构
  7. android 脚本模拟点击屏幕,android 脚本模拟点击屏幕,android模拟
  8. 学习java技术能干什么工作
  9. 二手房房价影响因素分析案例
  10. mysql日期相减返回月数_MySql日期相减返回月数_MySQL