人脸识别C程序代码副本概要.docx

上传人:b****0 文档编号:401761 上传时间:2022-10-09 格式:DOCX 页数:23 大小:27.64KB
下载 相关 举报
人脸识别C程序代码副本概要.docx_第1页
第1页 / 共23页
人脸识别C程序代码副本概要.docx_第2页
第2页 / 共23页
人脸识别C程序代码副本概要.docx_第3页
第3页 / 共23页
人脸识别C程序代码副本概要.docx_第4页
第4页 / 共23页
人脸识别C程序代码副本概要.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

人脸识别C程序代码副本概要.docx

《人脸识别C程序代码副本概要.docx》由会员分享,可在线阅读,更多相关《人脸识别C程序代码副本概要.docx(23页珍藏版)》请在冰豆网上搜索。

人脸识别C程序代码副本概要.docx

人脸识别C程序代码副本概要

//AppDesignDlg.cpp:

implementationfile

//

#include"stdafx.h"

#include"AppDesign.h"

#include"AppDesignDlg.h"

#include

#include

#include"Select.h"

#include"CvvImage.h"

#defineMAX_POINT200

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CAboutDlgdialogusedforAppAbout

usingnamespacestd;

CvCapture*m_Video;//opencv库的指针,从视频获取图像

intnFrmNum=0;//定义第nFrmNum帧,初始化为0,自动增值,nFrmNum是帧控件的关联变量,帧控件的ID为IDC_FRAMNUM

 

////定义几个重要的全局变量 

intnTrainFaces=0;// 训练图像的数目,即人脸库中有n张人脸

intnEigens=0;// 自己取的主要特征值数目(在提取特征脸的时候用到的参数)

IplImage**faceImgArr=0;// 指向训练人脸和测试人脸的指针(在学习和识别阶段指向不同)  

CvMat*personNumTruthMat=0;// 人脸图像的ID号

IplImage*pAvgTrainImg=0;// 训练人脸数据的平均值

IplImage**eigenVectArr=0;// 投影矩阵,也即主特征向量  

CvMat*eigenValMat=0;// 特征值

CvMat*projectedTrainFaceMat=0;// 训练图像的投影 

CvMat*trainPersonNumMat=0;

/*以下是自定义函数的声明,具体定义会在下方,cv开头的是OPENCV自带的库函数*/

voidlearn();

intloadFaceImgArr(char*filename);

voidrecognize2(IplImage*img);

voiddoPCA();

voidstoreTrainingData();

intloadTrainingData(CvMat**pTrainPersonNumMat);

intfindNearestNeighbor(float*projectedtestFace);

//用字符串时一定要把usingnamespacestd;写在前面,否则不能用,下面是用于显示的字符串

CvHaarClassifierCascade*cascade=NULL;

//OPENcv的分类器文件进行人脸检测,此函数是一个匹配函数,根据不同的分类器(tree、stump)进行不同的匹配,返回整形值,具体参考

/*以下是MFC框架代码,在我们用鼠标进行搭建框架的时候自动生成*/

classCAboutDlg:

publicCdialog

{

public:

CAboutDlg();

//DialogData

//{{AFX_DATA(CAboutDlg)

enum{IDD=IDD_ABOUTBOX};

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

//Nomessagehandlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CAppDesignDlgdialog

CAppDesignDlg:

:

CAppDesignDlg(CWnd*pParent/*=NULL*/)

:

CDialog(CAppDesignDlg:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CAppDesignDlg)

//NOTE:

theClassWizardwilladdmemberinitializationhere

//}}AFX_DATA_INIT

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

pCapture=NULL;

m_totalfrm=0;

m_curfrm=0;

m_stop=false;

loadxml=false;

m_src=NULL;

m_times=0;

}

voidCAppDesignDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAppDesignDlg)

//DDX_Control(pDX,IDC_PROGRESS1,m_progress);

//}}AFX_DATA_MAP

DDX_Control(pDX,IDC_PROGRESS1,m_progress);

}

BEGIN_MESSAGE_MAP(CAppDesignDlg,CDialog)

//{{AFX_MSG_MAP(CAppDesignDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1,OnOpenFile)

ON_WM_TIMER()

ON_BN_CLICKED(IDC_BUTTON5,OnStop)

ON_WM_CTLCOLOR()

//}}AFX_MSG_MAP

ON_BN_CLICKED(IDC_BUTTON2,&CAppDesignDlg:

:

OnBnClickedButton2)

ON_BN_CLICKED(IDC_BUTTON3,&CAppDesignDlg:

:

OnBnClickedButton3)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CAppDesignDlgmessagehandlers

BOOLCAppDesignDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

//TODO:

Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCAppDesignDlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallyd

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1