




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指纹识别系统程序设计实习报告设计名称:指纹识别系统程序设计姓名: WYP 班级:软件08-1指导老师:XXX设计学时:6周设计时间:2010年11月15日至2010年12月26日目录课程实习准备工作2程序实习项目及目的2一、项目2二、目的2程序设计内容2一、目标2二、功能3三、功能实现的基本思路3指纹识别系统的代码实现4结论4致谢513 课程实习准备工作1、确定课程设计题目,明确设计内容。2、根据课程设计内容,查找有关编程资料。3、根据设计内容的编程特点,准备实验环境和开发工具、文档书写工具。 程序实习项目及目的一、 项目课题为:指纹识别系统二、 目的当代社会,身份鉴别越来越重要,传统的身份鉴别方法(如身份证、信用卡、口令、密码等)可能会丢失、被盗或忘记。同时,传统的身份鉴别手段与用户并不惟一绑定,一旦他人获得,将拥有和失主同样的权力。而指纹特征是人所固有的生理特征,具有惟一性和终生不变性的特点。因此指纹认证在身份认证和身份识别中成为重要的手段。 程序设计内容一、 目标本指纹识别系统主要是对用户指纹进行提取将采集的指纹模板数据写入数据库,将实时采集的指纹图像作为指纹样板和数据库中的指纹模板逐一对,从而确认指纹样板身份。二、 功能指纹识别系统是一个典型的模式识别系统,包括指纹图像获取、处理、特征提取和比对等模块。 指纹图像获取:通过专门的指纹采集仪可以采集活体指纹图像。目前,指纹采集仪主要有活体光学式、电容式和压感式。对于分辨率和采集面积等技术指标,公安行业已经形成了国际和国内标准,但其他还缺少统一标准。根据采集指纹面积大体可以分为滚动捺印指纹和平面捺印指纹,公安行业普遍采用滚动捺印指纹。另外,也可以通过扫描仪、数字相机等获取指纹图像。 指纹图像压缩:大容量的指纹数据库必须经过压缩后存储,以减少存储空间。 指纹图像处理:包括指纹区域检测、图像质量判断、方向图和频率估计、图像增强、指纹图像细化等。本系统主要功能包括指纹采集、指纹识别、人员认证、人员登记。三、 功能实现的基本思路(1)模块化设计模块化是面向对象编程中的一个特征。把特定应用设计为一个模块,并从属性和方法两方面设计成为一个类模块。把类模块设置在不同的名字空间就可以用这类相同的类对应不同的应用。即使添加一个同样的类也不会影响不同名字空间的其他同类成员。(2)可扩充设计面向对象编程从本质上支持可扩充性。在不影响或极少影响已有代码的情况下,添加加一种功能。它的好处是新加代码无需大量发动已有代码。(3)封装设计由于功能被封装在类中,且类是作为一个独立实体而存在的,因此只要提供该类库,用户就可在无需知道该方法类详细实现的细节情况下,调用该功能,以达到重用代码的目的。 指纹识别系统的代码实现一、 主要窗体的布局设计二、 主窗体功能的代码实现void LiveMatch:OnButtonCreate() /创建指纹数据库CFileDialog dlg(TRUE,txt,.txt,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,Text (*.txt)|*.TXT|);if (dlg.DoModal() != IDOK) return;DatabasePath = dlg.GetPathName();FPA_CreateDatabase(DatabasePath, IndexList, &ListSize);void LiveMatch:OnButtonSave() /保存指纹数据库/ TODO: Add your control notification handler code hereFPA_SaveDatabase(DatabasePath, IndexList, ListSize);void LiveMatch:OnButtonLoad() /导入指纹数据库CFileDialog dlg(TRUE,txt,.txt,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,Text (*.txt)|*.TXT|);if (dlg.DoModal() != IDOK) return;DatabasePath = dlg.GetPathName();FPA_LoadDatabase(DatabasePath, IndexList, &ListSize);CString msg;msg.Format(Number of Record: %d, ListSize);AfxMessageBox(msg);void LiveMatch:OnButtonAdd() /保存指纹数据库/ TODO: Add your control notification handler code hereCString FolderName = DatabasePath;int t = FolderName.ReverseFind();FolderName = FolderName.Left(t);CString IDStr, FingerIndexStr;GetDlgItemText(IDC_EDIT_ID, IDStr);GetDlgItemText(IDC_EDIT_FINGERINDEX, FingerIndexStr);int ID = atoi(LPCSTR)IDStr);int FingerIndex = atoi(LPCSTR)FingerIndexStr);int Size;BYTE lpFeature430;FPA_AnalyzeFeature_File(LiveFilePath, lpFeature, &Size);int ret = FPA_AddEntry(FolderName, ID, IndexList, &ListSize, FingerIndex, lpFeature);if (ret = 0)SetDlgItemText(IDC_STATIC_ADDSTATUS, 添加成功);elseSetDlgItemText(IDC_STATIC_ADDSTATUS, 添加失败,请改变ID);void LiveMatch:OnButtonIdentify() /开始识别if (ListSize = 0) bIdentify = true;void LiveMatch:OnButtonNidentify() /停止识别bIdentify = false;void LiveMatch:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultint Size; CString t;if (nIDEvent = 1)FPA_Camera_Capture_File(LiveFilePath, lpLiveData1, 0);HBITMAP m_hImage;m_hImage = (HBITMAP)LoadImage(AfxGetInstanceHandle(),LiveFilePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetDlgItem(IDC_STATIC_LIVE)-SendMessage(STM_SETIMAGE,IMAGE_BITMAP, (LPARAM)m_hImage);if (bIdentify)int ret = FPA_AnalyzeFeature_File(LPCSTR)LiveFilePath, lpFeature1, &Size);if (ret = 0)ret = FPA_Identify(DatabasePath, IndexList, ListSize, lpFeature1);if (ret != -1)int ID = IndexListret / 10;int FingerIndex = IndexListret % 10;t.Format(获取! ID: %dttFingerIndex:%d, ID, FingerIndex);Else t.Format(不能获取); Else t.Format(捕捉中.); Else t.Format(捕捉中.); SetDlgItemText(IDC_STATIC_STATUS, t);CDialog:OnTimer(nIDEvent);void LiveMatch:OnButtonCap() /打开感应器int ret = FPA_Camera_Init(); TCHAR tchBuffer256 ;LPTSTR lpszCurDir; lpszCurDir = tchBuffer;GetCurrentDirectory(256 , lpszCurDir); CString showme(lpszCurDir);LiveFilePath = showme + live.bmp; SetTimer(1, 1000, 0);void LiveMatch:OnButtonClosesensor() /关闭感应器KillTimer(1);FPA_Camera_Exit();三、 指纹比对窗体四、 指纹比对功能的代码实现对各函数变量进行定义LPVOID lpImage1 = new BYTESizeCDib; /输入图像句柄LPVOID lpImage2 = new BYTESizeCDib; /输出图像句柄BYTE *lpData1; /输入图像数据指针BYTE *lpData2; /输出图像数据指针int Width1, Height1; /图像1宽、高int Width2, Height2; /图像2宽、高CString ImagePathName1, ImagePathName2; /定义图像文件路径void OffineMatch:OnButtonOpen1() /打开图片1CFileDialog dlg(TRUE,bmp,.bmp,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,Bitmap (*.BMP)|*.BMP|); /定义“打开文件”对话框的属性HBITMAP m_hImage; /定义图像句柄if (dlg.DoModal() != IDOK) return; /开启“打开文件”对话框ImagePathName1 = dlg.GetPathName(); /获取文件路径m_hImage = (HBITMAP)LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),IMAGE_BITMAP,0,0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); /导入图像GetDlgItem(IDC_STATIC_IMG1)-SendMessage(STM_SETIMAGE,IMAGE_BITMAP, (LPARAM)m_hImage); /显示图像FPA_CreateImage(lpImage1); /初始代输入图像句柄FPA_LoadImage(ImagePathName1, lpImage1, &lpData1, &Width1, &Height1);void OffineMatch:OnButtonOpen2() /打开图片2CFileDialog dlg(TRUE,bmp,.bmp,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,Bitmap (*.BMP)|*.BMP|);HBITMAP m_hImage;if (dlg.DoModal() != IDOK) return;ImagePathName2 = dlg.GetPathName();m_hImage = (HBITMAP)LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetDlgItem(IDC_STATIC_IMG2)-SendMessage(STM_SETIMAGE,IMAGE_BITMAP, (LPARAM)m_hImage);FPA_CreateImage(lpImage2);FPA_LoadImage(ImagePathName2, lpImage2, &lpData2, &Width2, &Height2);void OffineMatch:OnButtonMatch() /指纹比对BYTE lpFeature1430;BYTE lpFeature2430;int lpSize1, lpSize2, score;FPA_AnalyzeFeature_File(ImagePathName1, lpFeature1, &lpSize1);FPA_AnalyzeFeature_File(ImagePathName2, lpFeature2, &lpSize2);FPA_PatternMatch(lpFeature1, lpFeature2, &score);if (score 60)AfxMessageBox(认证成功,指纹相同!);Else AfxMessageBox(认证失败,指纹相异!); void OffineMatch:OnCancel() /取消FPA_CloseImage(lpImage1); /关闭图片1句柄FPA_CloseImage(lpImage2); /关闭图片2句柄CDialog:OnCancel();五、 指纹比对算法的主要代码void DrawMinutiae(int dx, int dy, int x, int y, CDC *pDc, CPen *Pen)CPen *oldPen=pDc-SelectObject(Pen);CRect rc; POINT p, pb;p.x = dx+x; p.y = dy+360-y;pb.x=p.x; pb.y=p.y;rc.left=p.x-3; rc.top=p.y-3;rc.bottom=p.y+3; rc.right=p.x+3;pDc-Arc(&rc,p,p); pDc-SelectObject(&oldPen);void DrawCore(POINT core, int x, int y, CDC *pDC)CRect rc;rc.left = core.x + x-5; rc.right = core.x + x +5;rc.top = (360-core.y) + y-5; rc.bottom = (360-core.y) + y + 5;pDC-Draw3dRect(&rc,RGB(255,0,0),RGB(255,0,0);#define MAX_MINUTIANUM60/ 最大特征点数#defineMAX_SINGULARYNUM30typedef struct tagMinutiae int x;/ 横坐标 int y;/ 纵坐标 int Direction;/ 方向 intTriangle3; / 特征点为中心外接圆半径为定值的正三角形三个顶点的方向 int Type;/ 类型 MINUTIA, *MINUTIAPTR; / 指纹特征(模板)结构typedef struct tagFeatureintMinutiaNum; / 特征点数MINUTIAMinutiaArrMAX_MINUTIANUM;/ 特征点数组 FEATURE, *FEATUREPTR;void CSampleDemoDlg:OnButtonFeature() POINT CoreMAX_SINGULARYNUM;int Num_Core = 0;POINT DeltaMAX_SINGULARYNUM;int Num_Delta = 0;int i; FEATURE feature;FPA_GetMinutia(lpData, lpOrient, (LPVOID*)&feature, Width, Height);FPA_GetSingulary(lpOrient, Width, Height, &Num_Core, Core, -1);FPA_GetSingulary(lpOrient, Width, Height, &Num_Delta, Delta, 1);CString OutImagePathName = tmp.bmp;CDC *myDC = m_img_feature.GetDC();COLORREF red = RGB(255, 0, 0); COLORREF green = RGB(0, 255, 0);COLORREF blue = RGB(0, 0, 255); COLORREF yellow = RGB(255, 255, 0);COLORREF orange = RGB(255, 102, 0); COLORREF purple = RGB(204, 33, 255);COLORREF gray = RGB(192, 192, 192);CBrush br; br.CreateSolidBrush(red);C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境工程师专业资格认证模拟题库及答案
- 2025年宿迁市中考物理试题(含答案)
- 2025年可持续发展与生态保护课程考试试卷及答案
- 夏季2025年交通安全工作总结
- 2025年老年人及慢性病健康管理知识培训考题及答案(课前)
- 2025年健康管理师考试相关试题及答案
- 2025年成功就业手册各行业通-用招聘笔试技巧与预测试题
- 北京市门头沟区2023-2024学年七年级上学期期末考试数学考试题目及答案
- 北京市门头沟区2023-2024学年九年级下学期初中学业水平考试(一模)道德与法制考试题目及答案
- 2025年高校科研岗位招聘面试题解析
- 2025劳动合同书示范文本下载
- 急性阑尾炎病人护理课件
- 水利水电工程单元工程施工质量验收标准第8部分:安全监测工程
- 2026年高考政治一轮复习:高考政治主观题背诵提纲汇编
- 2025总公司授权分公司签订合同的示范文本
- 2025年医师定期考核法律法规试题及答案
- 学堂在线 大学计算机基础 章节测试答案
- 骨科手术切口感染的预防与控制
- 县域共配仓农村物流配送成本控制报告
- 二级实验室生物安全管理手册
- 电商数据分析报告顾问合同
评论
0/150
提交评论