資源簡介
一個完整的人臉識別系統源代碼,經本人測試通過,可以運行,人臉檢測人臉識別效果都很好,可以用于畢業設計

代碼片段和文件信息
//?DIB.cpp:?implementation?of?the?DIB?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“DIB.h“
#include“math.h“
#define?WIDTHBYTES(bits)??((bits+31)/32*4)
#define?RECTWIDTH(x)?(x->right-x->left)
#define?RECTHEIGHT(x)?(x->bottom-x->top)
#define?THRESHOLDCONTRAST??40
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
#define?PI?3.1415926
extern?int?locaxlocay;
#define?m_WIDTH?600
#define?m_HEIGHT?600
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
/////////////////////////////////////////////////////////////////////
HDIB?DIB::ReadDIBFile(HANDLE?hFile)
{
BITMAPFILEHEADER?bmfHeader;
DWORD?dwBitsSize;
HANDLE?hDIB;
HANDLE?hDIBtmp;
LPBITMAPINFOHEADER?lpbi;
DWORD?dwRead;
????//得到文件大小
dwBitsSize?=?GetFileSize(hFileNULL);
hDIB?=??GlobalAlloc(GMEM_MOVEABLE(DWORD)(sizeof(BITMAPINFOHEADER)));
if(!hDIB)
return?NULL;
lpbi?=?(LPBITMAPINFOHEADER)GlobalLock(hDIB);
if(!lpbi)
{
GlobalFree(hDIB);
return?NULL;
}
if(!ReadFile(hFile(LPBYTE)&bmfHeadersizeof(BITMAPFILEHEADER)&dwReadNULL))
goto?ErrExit;
if(sizeof(BITMAPFILEHEADER)!=dwRead)//讀取文件出錯
goto?ErrExit;
if(bmfHeader.bfType?!=?0x4d42)//文件類型不匹配
goto?ErrExit;
if(!ReadFile(hFile(LPBYTE)lpbisizeof(BITMAPINFOHEADER)&dwReadNULL))
goto?ErrExit;
if(sizeof(BITMAPINFOHEADER)!=?dwRead)//讀取數據出錯
goto?ErrExit;
GlobalUnlock(hDIB);
if(lpbi->biSizeImage==0)
lpbi->biSizeImage?=?(this->BytePerLine(hDIB))*lpbi->biHeight;
hDIBtmp?=?GlobalReAlloc(hDIBlpbi->biSize+lpbi->biSizeImage0);
if(!hDIBtmp)
goto?ErrExitNoUnlock;
else
hDIB?=?hDIBtmp;
lpbi?=?(LPBITMAPINFOHEADER)GlobalLock(hDIB);
//根據情況設定文件指針
if(bmfHeader.bfOffBits?!=?0L)
SetFilePointer(hFilebmfHeader.bfOffBitsNULLFILE_BEGIN);
????//讀取文件的象素顏色數據
if(ReadFile(hFile(LPBYTE)lpbi+lpbi->biSizelpbi->biSizeImage&dwReadNULL))
goto?OKExit;
ErrExit:
GlobalUnlock(hDIB);
ErrExitNoUnlock:
GlobalFree(hDIB);?//釋放內存
return?NULL;
OKExit:
GlobalUnlock(hDIB);
return?hDIB;
}
HDIB?DIB::LoadDIB(LPCTSTR?lpFileName)
{
HANDLE?hDIB;
HANDLE?hFile;
//創建文件句柄
if((hFile?=?CreateFile(lpFileNameGENERIC_READFILE_SHARE_READNULLOPEN_EXISTINGFILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCANNULL))!=?INVALID_HANDLE_VALUE)
{??
//讀取數據
hDIB?=?ReadDIBFile(hFile);
//關閉文件句柄
CloseHandle(hFile);
return?hDIB;
}
return?NULL;
}
BOOL?DIB::PaintDIBTrue(HDC?hDCLPRECT?lpDCRectHANDLE?hDIBLPRECT?lpDIBRect?DWORD?dwRop)
{
LPBYTE?lpDIBHdr;
LPBYTE?lpDIBBits;
BOOL?bSuccess?=?FALSE;
if(!hDIB)
return?FALSE;
lpDIBHdr?=?(LPBYTE)GlobalLock(hDIB);
lpDIBBits?=?lpDIBHdr?+?sizeof(BITMAPINFOHEADER);
bSuccess?=?StretchDIBits(hDClpDCRect->left
?lpDCRect->top
?RECTWIDTH(lpDCRect)
?RECTHEIGHT(lpDCRect)
?lpDIBRect->left
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2006-10-26?19:59??人臉檢測系統
?????文件??????48361??2003-12-04?16:34??人臉檢測系統\DIB.cpp
?????文件???????3578??2003-12-04?16:34??人臉檢測系統\DIB.h
?????文件??????30076??2006-10-26?19:46??人臉檢測系統\face.aps
?????文件???????2871??2006-10-26?19:56??人臉檢測系統\face.clw
?????文件???????4306??2003-12-04?16:34??人臉檢測系統\face.cpp
?????文件???????4632??2003-12-04?16:34??人臉檢測系統\face.dsp
?????文件????????533??2003-12-04?16:34??人臉檢測系統\face.dsw
?????文件???????1334??2003-12-04?16:34??人臉檢測系統\face.h
?????文件?????222208??2006-10-26?19:56??人臉檢測系統\face.ncb
?????文件??????76800??2006-10-26?19:56??人臉檢測系統\face.opt
?????文件????????242??2006-10-26?19:53??人臉檢測系統\face.plg
?????文件??????12973??2003-12-04?18:39??人臉檢測系統\face.rc
?????文件???????2320??2003-12-04?16:35??人臉檢測系統\faceDoc.cpp
?????文件???????1506??2003-12-04?16:35??人臉檢測系統\faceDoc.h
?????目錄??????????0??2006-09-20?09:56??人臉檢測系統\facemodel
?????文件?????384214??2003-12-04?16:34??人臉檢測系統\facemodel\facemodel.bmp
????..A..H.??????7168??2003-12-06?21:51??人臉檢測系統\facemodel\Thumbs.db
?????文件??????10075??2003-12-04?18:39??人臉檢測系統\faceView.cpp
?????文件???????2783??2003-12-04?16:35??人臉檢測系統\faceView.h
?????文件???????2603??2003-12-04?16:35??人臉檢測系統\MainFrm.cpp
?????文件???????1492??2003-12-04?16:35??人臉檢測系統\MainFrm.h
?????文件???????4263??2003-12-04?16:35??人臉檢測系統\ReadMe.txt
?????目錄??????????0??2006-09-20?09:56??人臉檢測系統\res
?????文件???????1078??2003-12-04?16:34??人臉檢測系統\res\face.ico
?????文件????????396??2003-12-04?16:34??人臉檢測系統\res\face.rc2
?????文件???????1078??2003-12-04?16:34??人臉檢測系統\res\faceDoc.ico
?????文件???????1078??2003-12-04?16:34??人臉檢測系統\res\Toolbar.bmp
?????文件???????1578??2003-12-04?16:35??人臉檢測系統\Resource.h
?????文件????????206??2003-12-04?16:35??人臉檢測系統\StdAfx.cpp
............此處省略5個文件信息
評論
共有 條評論