资源简介
利用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个文件信息
- 上一篇:使用c语言实现图像二值化
- 下一篇:CDib类MFC图像编程必备
相关资源
- 人脸检测、人脸对齐MTCNN方法
- 基于ViolaJones算法的人脸识别CPP文件
- 基于opencv的人脸识别程序-代码详解
- 用C++语言写的完整的人脸识别程序源
- 基于Gabor特征的人脸识别
- 人脸识别c++代码
- c++视频教程opencv视频图像处理机器视
- 百度人脸识别,文字识别等c++接口需
- adaboost算法用于人脸识别的程序(fa
- c++ 人脸识别
- opencv人脸识别
- 人脸识别系统的设计与实现(C++)全
- 利用摄像头动态人脸识别的系统,V
- 利用opencv编写的人脸识别
- 基于QT人脸识别
- 人脸识别svm+pcaopencv3
- opencv人脸识别c++实现
- 人脸识别源代码
- C++实现的小波人脸表情识别内有人脸
评论
共有 条评论