資源簡介
可用于畢業設計,簡單的人臉識別系統,一個完整的人臉識別系統源代碼,可以用于畢業設計
代碼片段和文件信息
//?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??2018-05-08?16:33??人臉檢測系統-用于畢設\
?????目錄???????????0??2018-05-08?16:47??人臉檢測系統-用于畢設\Backup\
?????目錄???????????0??2018-05-08?16:32??人臉檢測系統-用于畢設\Backup1\
?????文件?????????953??2018-05-08?16:31??人臉檢測系統-用于畢設\Backup1\face.sln
?????文件???????18944??2018-05-08?16:32??人臉檢測系統-用于畢設\Backup1\face.v12.suo
?????文件???????48361??2003-12-04?16:34??人臉檢測系統-用于畢設\DIB.cpp
?????文件????????3578??2003-12-04?16:34??人臉檢測系統-用于畢設\DIB.h
?????目錄???????????0??2018-05-08?16:31??人臉檢測系統-用于畢設\Debug\
?????文件?????????691??2018-05-08?16:32??人臉檢測系統-用于畢設\Debug\face.log
?????文件????????2603??2003-12-04?16:35??人臉檢測系統-用于畢設\MainFrm.cpp
?????文件????????1492??2003-12-04?16:35??人臉檢測系統-用于畢設\MainFrm.h
?????文件????????4263??2003-12-04?16:35??人臉檢測系統-用于畢設\ReadMe.txt
?????文件????????1578??2003-12-04?16:35??人臉檢測系統-用于畢設\Resource.h
?????文件?????????206??2003-12-04?16:35??人臉檢測系統-用于畢設\StdAfx.cpp
?????文件????????1054??2003-12-04?16:35??人臉檢測系統-用于畢設\StdAfx.h
?????文件???????33860??2018-05-08?16:31??人臉檢測系統-用于畢設\UpgradeLog.htm
?????文件???????34414??2018-05-08?16:32??人臉檢測系統-用于畢設\UpgradeLog2.htm
?????文件???????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
?????文件????71827456??2018-05-08?16:33??人臉檢測系統-用于畢設\face.sdf
?????文件?????????953??2018-05-08?16:32??人臉檢測系統-用于畢設\face.sln
?????文件???????13312??2018-05-08?16:33??人臉檢測系統-用于畢設\face.v12.suo
?????文件????????8212??2018-05-08?16:32??人臉檢測系統-用于畢設\face.vcxproj
............此處省略13個文件信息
評論
共有 條評論