资源简介
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语言描述
相关资源
- 国际象棋的qt源代码
- C语言开发实战宝典
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C流程图生成器,用C语言代码 生成C语
- 小甲鱼C语言课件 源代码
- 学校超市选址问题(数据结构C语言版
- c语言看发的网络协议 ,源代码
- LU分解法解线性方程组的C语言代码
- 手机话费管理系统(c语言编写)
- C语言实现的DES对称加密算法
- 数据结构,迷宫问题C语言版源代码
- C语言 学生信息管理系统 源代码
- C语言版3D魔方游戏源代码
- 编译原理实验-词法分析(c语言代码)
- C语言中 文件读取和写入的详细操作代
- QT5开发及源代码
- 合泰触摸单片机BS84B08C实际应用代码上
- TFT_ST7789V驱动显示屏代码,可用于es
- 围棋C语言代码
- QML非常经典的代码
- linux 0.11内核代码
- 无人机视频代码
- 基于esp32的摄像头采集图像代码
- ASR6500,ASR6505原厂测试代码
- LCD驱动芯片ST7701SI SPI接口底层驱动配
- stm32库函数代码自动生成器V1.2
- USB CAN Tool 源代码(LabVIEW 2011环境)
- 超声波水表源代码
- 一个模糊PID温度控制算法源代码
评论
共有 条评论