|
本帖最后由 sbx19850629 于 2016-1-31 21:09 编辑
老帖新发,之前不知什么原因附件均没有了,本来已经是六年前的帖子了,但有很多小伙伴索要源代码,遂更新之。
希望这些代码能帮助大家快速上手,无论做科研还是应用,都应力求创造新的价值,而不是只满足于吃别人嚼过的东西...
这么说是不是会太刻薄了,呵呵 -_-
P.S.附件居然一个最大只能2M...我有点无语了...
2016
---------------------------------是谁?是你,是我。一条分割线,划走了我们七载光阴------------------------------------------
2009
做人脸识别用上了OPENCV,论坛上已经有基于MFC的人脸检测的程序了,我自己写了一个,现在贴出来和大家分享。
sln名字:OMimage O代表Opencv M代表MFC
个人感觉没什么技术含量,主要在一些细节上完善了一下:
重写了FILE OPEN 和FILE SAVE的对话框;
点击图片在状态栏显示图像信息;
多线程程序,人脸检测单独开一个线程操作,这样就不会检测的时候程序死在哪了。。。
图像显示的大小可以改变(25% 50% 100%)
基于Unicode
等等。。。
程序使用方法:
打开图像,VIEW里面可以改变显示图像的大小,face detection里面先select classifier(opencv安装目录\data\haarcascade里面有嵌入在opencv里面的分类器)
然后点face detection->Come On~ 就可以了。
注意事项:
那个edit里面的contoor也可以用,是做着玩玩的。
必须先打开图片,其他按钮才可用
必须先选择人脸检测器才能进行人脸检测(其他按钮才可用)
检测好的人脸(标出人脸位置的图像,并不是裁剪的人脸区域,尚待完善)可以另存为,如果直接保存会覆盖原来图像。
如果图像很大,处理的时间可能会比较长,(也不会超过十几秒),这时候界面可以活动,但后台在进行人脸检测,最好不要做其他操作。
因为是基于Unicode的程序,所以在处理字符串的时候会有些小的操作,没有UNICODE编程经验的话相]关程序MSDN一下就可以明白的
其他的。。。好像没啥了。。。
配置/环境:
opencv1.1+vs.net2005
opencv一定要按照此贴修改、配置(转)http://hi.baidu.com/yb223732/blog/item/9a50841eeb33c218403417a6.html
注释掉_highgui.h中的 #define HAVE_VIDEOINPUT 1这句 重新编译OpenCv的Highgui工程 重新生成Highgui.lib,否则会出现OLE初始化失败或进程无法退出的错误。
虽然本例没有用到MFC的CImage类,不过最好按照下面链接把CImag的宏定义去掉:http://hi.baidu.com/irmosgarden/blog/item/420798cad750ee8ec91768dc.html 以上两个链接已经失效了,大家可以找一找其他的openCV1.1的修改帖子,不过现在估计没什么人用1.1了吧,之后版本的兼容性我并没有测试。
源代码是贴出来了,本来就没什么技术含量,还是希望大家只是参考就好,不要不看源代码,编译了就用。国内的开源搞的没有国外好,也是与我们自身有很大关系的。
我曾经看过一个硕士生答辩,也就搞了个类似的程序演示了一下就过关了。真是汗啊,国内的硕士培养真是越来越鸡肋了。。(跑题了。。。)
另外感觉基于HAAR特征的人脸检测的检测率还不是很高,论文上说的60%-70%恐怕还是有水分的,特别是在自然环境下的人脸检测,误识率还是很高的,不过没办法啊,快就一个字~快就是硬道理~~
|
|