经过之前几篇博客的解说,我们已经成功搭建了MFC应用框架,并实现了主要的图像显示和人脸检測程序,在这篇博文中我们要向当中加入性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行解说.这里不再赘述.详细參见:C++开发人脸性别识别教程(5)--通过FaceRecognizer类实现性别识别和C++开发人脸性别识别教程(6)--通过SVM实现性别识别. 一.分类器训练 在进行人脸性别识别之前须要训练性别识别的分类器,而分类器的训练过程是相对耗时的(大约五分钟),因此这里我们採用离线训练…
现在我们的MFC框架已经初具规模,能够读取并显示目录下的图片.在这篇博文中我们将向当中加入人脸检測的程序. 一.人脸检測算法 这里我们使用OpenCv封装的Adaboost方法来进行人脸检測,參见:C++开发人脸性别识别教程(4)--OpenCv的人脸检測函数 二.初始化 1.加入初始化button 在进行人脸检測之前须要初始化一些相关变量.比如开辟内存,载入检測器等等.首先,我们为MFC框架加入一个初始化button.并将ID更改为IDC_BUTTON_INITIAL: 双击这个button.…
在这篇博文中将完毕<C++开发人脸性别识别>的收尾工作.主要内容分为两部分:加入视频暂定功能.界面规范化. 一 视频暂停功能 严格来说这个视频暂定功能算是视频人脸性别识别的一个遗留问题,本应加在C++开发人脸性别识别教程(16)--视频人脸性别识别这篇博文中.这里将其补上,详细功能就是在对摄像头採集的视频进行人脸检測.性别识别时,可以通过一个"暂停"button来对程序进行控制,实现程序的開始和中断. 1.1 加入控件 依照以往的思路这里须要再次加入一个button控件来实…
OpenCv是C++图像处理的重要工具.这个人脸性别识别的项目就是借助OpenCv进行开发的. 尽管网上已经有了非常多关于OpenCv的配置教程,但出于教程完整性考虑.这里还是用专门的一篇博客来介绍OpenCv的详细配置方法,同一时候也介绍一下OpenCv中的一个强有力的图像处理插件--ImageWatch. 因为这个程序是一年前写的.当时的OpenCv的最新版本号为2.4.9(如今已经更新到了3.0),而且2.4.9版本号和3.0版本号在配置方法上稍有不同,这里我仍以2.4.9版本号为例来介绍…
在之前的博文中我们已经可以顺利驱动摄像头来採集源图像.在这篇博文中将正式为其加入性别识别的代码,实现摄像头视频的人脸性别识别. 一.人脸检測 在得到摄像头採集的源图像之后,首先要做的就是对其进行人脸检測,将人脸区域切割出来.这步相对来说比較简单.仅仅需在定时器时间触发函数中加入人脸检測的代码就可以.这里给出OnTimer()函数的总体代码: void CGenderRecognitionMFCDlg::OnTimer(UINT_PTR nIDEvent) { /***********人脸检測并识…
在之前的博客中已经攻克了人脸检測的问题,我们计划在这篇博客中介绍人脸识别.性别识别方面的相关实现方法. 事实上性别识别和人脸识别本质上是相似的,由于这里仅仅是一个简单的MFC开发,主要工作并不在算法研究上,因此我们直接将性别识别视为一种特殊的人脸识别模式. 人脸识别可能须要分为几十甚至上百个类(由于有几十甚至上百个人).而性别识别则是一种特殊的人脸识别--仅仅有两个类. 一.基本工具 通过OpenCv进行性别识别的基本工具是FaceRecognizer.这是OpenCv2.x版本号中的一个主要的…
在之前的博客中我们已经将项目中用到的算法表述完成,包含人脸检測算法以及四种性别识别算法,在这篇博客中我们将着手搭建主要的MFC框架. 一.框架概况 在这篇博文中我们将搭建最主要的MFC框架.绘制MFC界面. 二.搭建流程 1.新建一个MFCproject并配置OpenCv 打开VS.按下"ctrl+n",在新建窗体中选择"MFC应用程序",命名为GenderRecognitionMFC: 单击确定,程序类型选择"基于对话框",MFC使用选择&qu…
在上一篇博客中我们已经绘制了MFC界面,在这篇博客中我们将加入响应代码,为MFC框架加入一个最主要的功能:打开一个目录. 一.加入相关头文件 这里头文件主要包括三类:opencv头文件.批量读取文件相关的头文件.CvvImage.这里须要强调CvvImage这个头文件,这个是用来关联OpenCv和picture控件,而且这个头文件是隶属于OpenCv1.x的,在2.x版本号中已经将这个类移除.因此须要手动下载这两个文件(CvvImage.h和CvvImage.cpp),下载地址:CvvImage…
在之前的博客中我们已经实现读取用户选定的目录.并将其路径保存在对应的变量中.在这篇博文中我们将介绍怎样借助CvvImage类将图片显示在picture控件中,并自己主动读取目录下的其它图片. 一.加入"下一张"button 因为我们须要读取目录下的全部图像文件,而非某一张文件,因此有必要加入一个button来进行控制,具体功能就是:每单击一次这个button,程序就会自己主动读取下一张图片并显示在界面上. 因为之前已经具体介绍了MFC中加入Button控件的方式.这里不再赘述.加入一个…
http://blog.csdn.net/u013088062/article/details/50480518…