• 大小: 220KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: 人脸识别  

资源简介

利用MFC实现人脸识别,基于opencv的人脸识别技术应用广泛,在学校或其他领域都使用

资源截图

代码片段和文件信息

// 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  2007-08-14 14:26  人脸检测系统\Debug

     文件      48361  2003-12-04 16:34  人脸检测系统\DIB.cpp

     文件       3578  2003-12-04 16:34  人脸检测系统\DIB.h

     文件      30112  2004-01-17 00:20  人脸检测系统\face.aps

     文件       2871  2004-01-17 00:23  人脸检测系统\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

     文件     189440  2004-01-17 00:23  人脸检测系统\face.ncb

     文件      71680  2004-03-15 18:35  人脸检测系统\face.opt

     文件       6806  2004-01-17 00:20  人脸检测系统\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

     文件     384214  2003-12-04 16:34  人脸检测系统\facemodel\facemodel.bmp

    ..A.SH.      5632  2007-08-14 14:20  人脸检测系统\facemodel\Thumbs.db

    ...D..R         0  2007-08-14 14:26  人脸检测系统\facemodel

     文件      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

     文件       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

    ...D..R         0  2007-08-14 14:26  人脸检测系统\res

     文件       1578  2003-12-04 16:35  人脸检测系统\Resource.h

     文件        206  2003-12-04 16:35  人脸检测系统\StdAfx.cpp

............此处省略6个文件信息

评论

共有 条评论