C++开发人脸性别识别总结
历时一个月,最终在昨天把《C++开发人脸性别识别总结》系列博客完毕了,第一篇博客发表在2015年12月29日,截止昨天2016年2月29日最后一篇完毕,去除中间一个月的寒假,正好一个月,首先这里把这系列博客的地址呈上:C++开发人脸性别识别教程。
在发牢骚之前首先强调几个重要问题:
(1)在程序中存在一个小的易触发的BUG。就是”初始化“button相应的事件触发函数OnBnClickedButtonInitial()中有一句这种代码:
在实际编程过程中常常须要对代码进行规范化,假设你习惯通过“ctrl+A”全选代码然后再使用“ctrl+K+F”快捷键这种方式来对代码进行批量规范化的话。那样你就须要十分注意了,由于经过批量规范化之后这段代码会变成这个样子:

非常明显这里VS默认在第二行字符串前面加了空格以完毕前后两行的对齐。而这也就破坏了字符串连接的规则。导致地址出错、分类器载入失败,因此在后面的编程过程中假设人脸检測器载入失败之类的错误。请先检查检查有没有发生上面所说的这个BUG。
(2)程序的准确性和稳定性。严格的说这个程序在算法方面没有做丝毫的改进,用的都是OpenCv已经封装好的、非常经典但也非常古老的人脸检測、人脸识别算法,假设你想学习C++环境下的MFC、OpenCv入门,欢迎阅读,但假设你希望了解最新的人脸检測人脸识别算法,知网和EI才是王道。
(3)对于这个小项目另一个须要完好的方面,那就是程序的打包与部署。
在程序设计之初本来打算将它最终封装成一个exe文件,和大家分享,但后来在学习VS+OpenCv的打包与部署过程中遇到了各种各样的问题。加之研究生课题方面的安排也越来越紧。因此这部分工作就暂且被搁置了。希望大家有时间的可以研究研究,毕竟要是可以将自己写的MFC小程序打包并部署在其它计算机上,还是一件蛮有成就感的事情。
OK。以上就是对这个前后近20篇博文的一个小小的总结。事实上这个程序是我在2014年8月份完毕的,当时我还在上大四。时隔一年半我才想起把这前后八百多行代码的小project总结总结放在网上,差点就让它烂在我的电脑里了。要是当时我就顺便把这个问题总结之后放到我的个人博客上的话,预计如今我的博客訪问量早就突破二十万了吧。嘿嘿,总之做事要赶前面,不能往后拖。出名要趁早,还有半年时间我就要找工作了,但愿到时候找工作顺利,算是2016年的新年愿望吧,好了,牢骚发到这里,忙别的去了。
C++开发人脸性别识别总结的更多相关文章
- C++开发人脸性别识别教程(12)——加入性别识别功能
经过之前几篇博客的解说,我们已经成功搭建了MFC应用框架,并实现了主要的图像显示和人脸检測程序,在这篇博文中我们要向当中加入性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行解说.这里 ...
- C++开发人脸性别识别教程(19)——界面美化
在这篇博文中将完毕<C++开发人脸性别识别>的收尾工作.主要内容分为两部分:加入视频暂定功能.界面规范化. 一 视频暂停功能 严格来说这个视频暂定功能算是视频人脸性别识别的一个遗留问题,本 ...
- C++开发人脸性别识别教程(10)——加入图片的人脸检測程序
现在我们的MFC框架已经初具规模,能够读取并显示目录下的图片.在这篇博文中我们将向当中加入人脸检測的程序. 一.人脸检測算法 这里我们使用OpenCv封装的Adaboost方法来进行人脸检測,參见:C ...
- C++开发人脸性别识别教程(16)——视频人脸性别识别
在之前的博文中我们已经可以顺利驱动摄像头来採集源图像.在这篇博文中将正式为其加入性别识别的代码,实现摄像头视频的人脸性别识别. 一.人脸检測 在得到摄像头採集的源图像之后,首先要做的就是对其进行人脸检 ...
- C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍
OpenCv是C++图像处理的重要工具.这个人脸性别识别的项目就是借助OpenCv进行开发的. 尽管网上已经有了非常多关于OpenCv的配置教程,但出于教程完整性考虑.这里还是用专门的一篇博客来介绍O ...
- C++开发人脸性别识别教程(5)——通过FaceRecognizer类实现性别识别
在之前的博客中已经攻克了人脸检測的问题,我们计划在这篇博客中介绍人脸识别.性别识别方面的相关实现方法. 事实上性别识别和人脸识别本质上是相似的,由于这里仅仅是一个简单的MFC开发,主要工作并不在算法研 ...
- C++开发人脸性别识别教程(7)——搭建MFC框架之界面绘制
在之前的博客中我们已经将项目中用到的算法表述完成,包含人脸检測算法以及四种性别识别算法,在这篇博客中我们将着手搭建主要的MFC框架. 一.框架概况 在这篇博文中我们将搭建最主要的MFC框架.绘制MFC ...
- C++开发人脸性别识别教程(9)——搭建MFC框架之显示图片
在之前的博客中我们已经实现读取用户选定的目录.并将其路径保存在对应的变量中.在这篇博文中我们将介绍怎样借助CvvImage类将图片显示在picture控件中,并自己主动读取目录下的其它图片. 一.加入 ...
- C++开发人脸性别识别教程(6)——通过SVM实现性别识别
http://blog.csdn.net/u013088062/article/details/50480518
随机推荐
- 解决gradle project refresh failed: protocol family unavailable问题的几种方法
Android Studio从版本1.5更新到2.1之后,打开Android Studio一直提示: gradle project refresh failed: protocol family un ...
- Elasticsearch之CURL命令的HEAD
如果只想检查一些文档是否存在,我们可以使用HEAD来替代GET方法,这样就只会返回HTTP头文件. [hadoop@master elasticsearch-]$ curl -i XHEAD http ...
- [ BZOJ 3445 ] Roadblock
\(\\\) \(Description\) 给出一张\(N\) 个点\(M\)条边的无向图,选择一条边使其权值翻倍,求操作后比操作前最短路长度增量最大值. \(1\le N\le 250\),\(1 ...
- JS——样式类的添加
1.注意current前有个空格 this.className = this.className + " current"; 2.直接将class所有的值替换成current th ...
- sqlserver 2014 删除主键约束
truncate table menu SELECT * FROM sys.foreign_keys WHERE referenced_object_id=OBJECT_ID('menu'); --找 ...
- CStatic设置位图
CStatic 用于显示位图 如果要显示图标,则必须要设置窗口属性为 SS_BITMAP 和 SS_CENTERIMAGE,实例代码如下: //获得指向静态控件的指针 CStatic *pStatic ...
- MySQL操作数据库和表的基本语句(DDL
1.创建数据库: CREATE DATABASE 数据库名; eg.CREATE DATABASE test_ddl;122.创建表 CREATE TABLE 表名(列名 数据类型 约束,...); ...
- BZOJ 4520: [Cqoi2016]K远点对 KDtree + 估价函数 + 堆
Code: #include<bits/stdc++.h> #define ll long long #define maxn 200000 #define inf 10000000000 ...
- mybatis批量操作(foreach)
foreach可以在SQL语句中通过拼接的方式进行集合迭代.foreach元素的属性主要有collection,item,index,separator,open,close. item属性:表示循环 ...
- select 如何将文本居中
开始测试了几种方式但是结果都是失败的,最后测试一种方式终于成功了,所以做下笔记: select{ width: 3.2rem; height: 1.2rem; border-radius: 0.6re ...