资源简介
VC++ 指纹识别系统的源代码,一个学士学位的毕业设计。
内容简介:
由于指纹所具有的唯一性和不变性,以及指纹识别技术具有很高的可行性和实用性,指纹识别成为目前最流行、最可靠的个人身份认证技术之一。
本论文对指纹图像基于小波变换的各种处理进行了分析、总结。图像处理包括基于小波变换的指纹图像滤波处理和基于小波的指纹图像增强处理。同时介绍指纹图像的预处理:目的是去除指纹图像中的噪音,将其转化为一幅清晰的点线图,便于提取正确的指纹特征。它分四步进行,即灰度滤波、二值化、二值去噪、细化。
本文针对基于点模式匹配的指纹匹配算法速度较慢的现状,设计了一种新的指纹匹配方法,即利用纹线匹配技术来寻找基准点对的指纹匹配算法.实验证明,该算法匹配速度很快,误识率低,准确性高,并具有图象旋转平移不变性.对面积适中的指纹图象,匹配结果可以满足在线应用的需要.该算法有望发展成为一种实用、有效的指纹匹配技术.
代码片段和文件信息
// cdib.cpp
// new version for WIN32
#include “stdafx.h“
#include “cdib.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_SERIAL(CDib Cobject 0);
CDib::CDib()
{
m_hFile = NULL;
m_hBitmap = NULL;
m_hPalette = NULL;
m_nBmihAlloc = m_nImageAlloc = noAlloc;
Empty();
}
CDib::CDib(CSize size int nBitCount)
{
m_hFile = NULL;
m_hBitmap = NULL;
m_hPalette = NULL;
m_nBmihAlloc = m_nImageAlloc = noAlloc;
Empty();
ComputePaletteSize(nBitCount);
m_lpBMIH = (LPBITMAPINFOHEADER) new
char[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries];
m_nBmihAlloc = crtAlloc;
m_lpBMIH->biSize = sizeof(BITMAPINFOHEADER);
m_lpBMIH->biWidth = size.cx;
m_lpBMIH->biHeight = size.cy;
m_lpBMIH->biPlanes = 1;
m_lpBMIH->biBitCount = nBitCount;
m_lpBMIH->biCompression = BI_RGB;
m_lpBMIH->biSizeImage = 0;
m_lpBMIH->biXPelsPerMeter = 0;
m_lpBMIH->biYPelsPerMeter = 0;
m_lpBMIH->biClrUsed = m_nColorTableEntries;
m_lpBMIH->biClrImportant = m_nColorTableEntries;
ComputeMetrics();
memset(m_lpvColorTable 0 sizeof(RGBQUAD) * m_nColorTableEntries);
m_lpImage = NULL; // no data yet
}
CDib::~CDib()
{
Empty();
}
CSize CDib::GetDimensions()
{
if(m_lpBMIH == NULL) return CSize(0 0);
return CSize((int) m_lpBMIH->biWidth (int) m_lpBMIH->biHeight);
}
BOOL CDib::AttachMapFile(const char* strPathname BOOL bShare) // for reading
{
// if we open the same file twice Windows treats it as 2 separate files
// doesn‘t work with rare BMP files where # palette entries > biClrUsed
HANDLE hFile = ::CreateFile(strPathname GENERIC_WRITE | GENERIC_READ
bShare ? FILE_SHARE_READ : 0
NULL OPEN_EXISTING FILE_ATTRIBUTE_NORMAL NULL);
ASSERT(hFile != INVALID_HANDLE_VALUE);
DWORD dwFileSize = ::GetFileSize(hFile NULL);
HANDLE hMap = ::CreateFileMapping(hFile NULL PAGE_READWRITE 0 0 NULL);
DWORD dwErr = ::GetLastError();
if(hMap == NULL)
{
AfxMessageBox(“Empty bitmap file“);
return FALSE;
}
LPVOID lpvFile = ::MapViewOfFile(hMap FILE_MAP_WRITE 0 0 0); // map whole file
ASSERT(lpvFile != NULL);
if(((LPBITMAPFILEHEADER) lpvFile)->bfType != 0x4d42)
{
AfxMessageBox(“Invalid bitmap file“);
DetachMapFile();
return FALSE;
}
AttachMemory((LPBYTE) lpvFile + sizeof(BITMAPFILEHEADER));
m_lpvFile = lpvFile;
m_hFile = hFile;
m_hMap = hMap;
return TRUE;
}
BOOL CDib::CopyToMapFile(const char* strPathname)
{
// copies DIB to a new file releases prior pointers
// if you previously used CreateSection the HBITMAP will be NULL (and unusable)
BITMAPFILEHEADER bmfh;
bmfh.bfType = 0x4d42; // ‘BM‘
bmfh.bfSize = m_dwSizeImage + sizeof(BITMAPINFOHEADER) +
sizeof(RGBQUAD) * m_nColorTableEntries + sizeof(BITMAPFILEHEADER);
// meaning of bfSize open to interpretation
bmfh.bfReserved1 = bmfh.bfReserved2 = 0;
bmfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-11-09 09:38 VCsrc\
目录 0 2011-11-17 17:14 VCsrc\指纹识别系统\
文件 45056 2006-06-18 15:40 VCsrc\指纹识别系统\摘 要.doc
目录 0 2011-11-09 09:38 VCsrc\指纹识别系统\调试结果程序\
目录 0 2011-11-09 09:38 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\
文件 0 2005-04-20 21:24 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\.dsw
文件 16334 2000-12-11 07:12 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cdib.cpp
文件 1906 1997-03-25 00:39 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cdib.h
文件 3159 2000-12-27 22:25 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphClose.cpp
文件 1675 2000-12-27 22:25 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphClose.h
文件 3200 2000-12-21 22:41 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphDilation.cpp
文件 1708 2000-12-21 22:39 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphDilation.h
文件 3187 2000-12-21 21:46 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphErosion.cpp
文件 1697 2001-02-14 03:20 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphErosion.h
文件 3142 2000-12-22 01:14 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphOpen.cpp
文件 1664 2000-12-22 00:47 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\cDlgMorphOpen.h
文件 47796 2006-06-19 09:54 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.aps
文件 16519 2006-06-15 21:24 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.clw
文件 4307 2000-12-11 20:35 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.cpp
文件 8572 2001-03-25 23:50 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.dsp
文件 535 2001-01-15 17:33 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.dsw
文件 1345 2005-04-20 16:27 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.h
文件 2040832 2006-06-19 09:56 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.ncb
文件 58880 2006-06-19 09:56 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.opt
文件 244 2006-06-19 09:54 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.plg
文件 36977 2006-05-24 11:44 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.rc
文件 41641 2001-02-14 03:14 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1.rc.bak
文件 7742 2001-01-16 22:54 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1Doc.cpp
文件 2065 2001-02-14 18:22 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1Doc.h
文件 95792 2001-02-23 03:08 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1View.cpp
文件 4079 2001-02-22 23:11 VCsrc\指纹识别系统\调试结果程序\vc++指纹图象处理1\ch1_1View.h
............此处省略147个文件信息
- 上一篇:gtest-1.7.0
- 下一篇:测绘程序设计C语言描述
相关资源
-
iOS计算器代码ob
jective-C - 教室管理系统 源代码
- c++流程图生成器 自动生成源代码的流
- 空间前方交回Qt c++程序
- 挖金子工程源代码C++
- C++.How.to.Program8th.Edition 答案源代码
- Seam Carving的C++实现代码
- C++ QQ农场源代码程序
- 万有引力搜索算法 c++代码
- 2013最新C++远程控制木马源代码
- VC++ 数字图像处理典型算法及实现 源
- C++版的rinex文件读取源代码
- 图像识别水果代码
- 餐饮管理系统源代码(亲测)
- C\\C++ 任意(281016)进制转换为(281
- 编程精粹:编写高质量C语言代码中文
- 05年毕业设计-图像处理软件及源代码
- 微软Win10计算器开源代码C++
- PE文件解析器的原理C语言代码
- C++蚁群算法求解TSP问题
- 计算机图形学实验代码包括图形旋转
- C++屏幕截图源代码
- C++屏幕截图工具源代码
- Visual.C++数据库编程技术与 源代码
- MFC课程设计图书管理系统实验报告内
- VC++网络聊天室源代码和程序说明
- 编译技术实验(Pascal代码转汇编语言
- 奥比中光深度摄像头 C#+源代码
- c++P2P网络编程代码
- 语音识别STM_C语言代码
评论
共有 条评论