900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 使用中控指纹采集器开发指纹识别案例V1.0

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

时间:2023-12-04 22:59:37

相关推荐

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

这两天正好有点琐碎的时间,就将两年前未开发完毕的指纹识别项目翻出来继续写了写。

运行环境:

 中控指纹采集器

 Win10操作系统

 .netframework4.0

 Sqlserver及以上

源码已经上传到微信公众号【雄雄的小课堂】中,回复“指纹识别源码获取”即可下载。

一、 指纹识别项目运行流程:

 用户注册:输入用户名、密码以及采集完整的3遍指纹。

 用户登录:输入注册时的用户名,使用注册时的指纹,即可登录成功

 采集指纹时,3次需要一样的,如果不一样,提示采集失败

 登录时,需要用户名和指纹对应,如果不对应,则提示登陆失败,采集器闪红灯以及有警告声响

二、 指纹识别项目中的部分截图:

注册页面:

2.登录页面

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

4.指纹采集3次成功:

5.登录成功:

6.登陆失败:

三、 部分代码:

采集指纹的代码

/// <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);}}

将指纹登记特征模版保存到指纹识别高速缓冲空间,并显示指纹登记结果

/// <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);}

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。