基于VC面部识别软件(识别出人脸特征)
最近在学校MFC和Opencv,毕业只是做面部识别软件,所以写一个,我觉得很简单。
第一个VC组态opencv。不用说。非常easy,网上资料非常多,然后就是设计界面啦,这个全然凭个人喜好了,我设计的界面是这种:
然后就是拍照。保存图片。这个也非常easy,网上资料也非常多,就简单粘贴一下代码吧:
这是打开摄像头的代码:
pwnd = GetDlgItem(IDC_STATIC1);
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
if (!camera.OpenCamera(0,false))
{
AfxMessageBox("无法打开摄像头");
return;
}
//IplImage* m_Frame;
m_Frame=camera.QueryFrame();
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);
if (true)
{
m_CvvImage.DrawToHDC(hDC, &rect);
//cvWaitKey(10);
}
// 设置计时器,每10ms触发一次事件
SetTimer(1,10,NULL);
}
关闭摄像头:
void CBishe5_1Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
camera.CloseCamera();
KillTimer(1);
}
保存图片并在第二的picture框中显示:
// TODO: Add your message handler code here and/or call default
pwnd = GetDlgItem(IDC_STATIC1);
pDC =pwnd->GetDC();
hDC= pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
m_Frame=camera.QueryFrame();
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);
if (true)
{
m_CvvImage.DrawToHDC(hDC, &rect);
//cvWaitKey(10);
}
CDialog::OnTimer(nIDEvent);
}
在摄像头拍摄图片中还遇到了问题,应该是兼容性的问题。我是在win7系统上执行VC和opencv1.0,当中opencv1.0中打开摄像头操作无法执行,后来搞了好长时间。找了一些资料,后来将打开摄像头等操作代码不调用opencv1.0的。自己写代码从win7的API调用,此段代码是一个大神写的。非常好用,十分感谢他的,代码非常长,就不粘贴了,网上细致找找都有。
接下来就是图像识别了,这个我感觉非常easy,我花了一下人脸识别的程序框图,帮助大家理解一下:
事实上程序非常easy,我就张贴一下我的找出人脸并圈出人脸的代码,其它鼻子嘴巴等五官识别都差点儿相同:
CvSeq* FaceDet(IplImage* imgSrc, IplImage* imgDst)
{
if(imgSrc != imgDst)
{
cvReleaseImage(&imgDst);
imgDst = cvCloneImage(imgSrc);
}
const char* cascade = "haarcascade_frontalface_alt2.xml";
CString file = getXMLFile(cascade);
CvSeq * faces = CvHarrEx(imgSrc, NULL, /*FACEXML*/file, cvSize(20, 20));
if(!faces)
{
MessageBox(NULL,"此人长得太帅!
!
!导致计算机无法识别。实在不好意思", "", 0);
return NULL;
}
//Reduce(faces);
int i, n = faces->total;
CvRect* r;
//--check whether have eyes in the face
for(i = 0; i < n; i++)
{
r = (CvRect*)cvGetSeqElem( faces, i );
if( CvHarrEx(imgSrc, r, /*EYERXML*/getXMLFile("ojoD.xml"), cvSize(18, 12)) == NULL)
{
cvSeqRemove(faces, i);
i--;
n = faces->total;
}
}
DrawCircle(imgSrc, imgDst, faces, cvPoint(0,0));
return faces;
}
终于结果是将人脸五官全识别并圈出来:
详细就这些了,全程序我打包发在CSDN的下载中把,事实上还没搞完,原本想建,把家人的脸都训练成模板,建一个模型库,然后当外人出如今摄像头前,在模板库中找不到匹配的模板,然后报警。
嗯嗯,小弟刚開始学,比与水相比,。第一次写博客,很多关注大神。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
基于VC面部识别软件(识别出人脸特征)相关推荐
- 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位
基于改进Coarse-to-fine CNN网络的人脸特征点定位 原文地址:http://blog.csdn.net/hjimce/article/details/50099115 作者:hjimce ...
- java 人脸比对_java ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对
java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 人脸检测 人脸跟踪 人脸属性检测(性别.年龄) 人脸三维角度检测 人脸对比 本文使用到的SDK为本人 ...
- 请基于Keil uVision5软件写出led流水灯代码
首先,您需要确保您的开发板有一个LED,并且您已经安装了Keil uVision5软件.接下来,您可以使用以下代码编写led流水灯: #include<reg51.h>sbit LED = ...
- python调用摄像头人脸识别代码_OpenCV3-Python人脸识别方法—人脸识别与标记
上接<OpenCV3-Python人脸识别方法-基于摄像头>,实际应用中,有时我们不仅需要检测人脸信息,可能还需对识别到的人脸进行判断(是否是某个特定的人)?接下来,本篇介绍基于openc ...
- 基于Python的OpenCV+TensorFlow+Keras人脸识别实现
前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 完整工程及源代码请点击链接下载:人 ...
- 基于cnn的人脸识别_基于卷积神经网络(CNN)的人脸在线识别系统
微信搜索"AI大道理",选择"置顶"公众号 重磅干货,深入讲解AI大道理 ------ 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统, ...
- pil python 安装_Python实现识别人脸特征并打印出来!
通过Python的face_recognition模块实现人脸检测功能,首先需要安装好face_recognition包:可通过pycharm直接安装,也可以用pip安装,还可以通过anaconda安 ...
- python人脸特征提取_Python实现识别人脸特征并打印出来
通过 Python 的face_recognition模块实现人脸检测功能,首先需要安装好face_recognition包:可通过pycharm直接安装,也可以用pip安装,还可以通过anacond ...
- 学习笔记:python人脸识别5-给识别出的人脸读出名字打招呼
在实际应用中,识别到人脸后,说 XXX 早上好! 会更亲切,并且给用户确认已经识别的反馈信息 python 要读出文字(中文,英文)的声音,需要安装语音模块pypiwin32 和 pyttsx 开始 ...
最新文章
- cout的输出格式初探2
- 端计算(9)-android opencv(1)
- POJ - 3258 River Hopscotch(二分水题)
- php gd gif动画,我可以检测使用PHP和GD的animationGIF?
- Android Alarm自上而下 调试浅析
- linux init进程原理,Linux 系统下 init 进程的前世今生
- php自增删除开始,PHP的自增自减操作
- Hive依据key获取value
- [译] MDC-103 Flutter: Material Theming 的颜色、形状、高度和类型(Flutter)
- FPGA实验-VGA显示
- 马斯克血洗推特!传机器学习裁员90%,团队直接解散
- 2019新版35 U.S.C. 101专利适格性审查指南 新增「抽象概念三分类」及「整合至实际应用」判定标准
- ES 关于text和keyword两种类型数据搜索区别
- 产品经理实践【四川省地震需求分析】
- 莫再用唐僧式的唠叨施加影响----家长式管理者实施HOLA的障碍
- kotlin 属性重载
- iphone11计算机黑屏,苹果11突然黑屏开不了机怎么办?iphone11黑屏无法开机的解决方案...
- 读书笔记——OpenGL超级宝典
- 腾讯云服务器性能评测:配置参数16核 32G 28M
- 8月22日到26日工作收获