最近在学校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面部识别软件(识别出人脸特征)相关推荐

  1. 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位

    基于改进Coarse-to-fine CNN网络的人脸特征点定位 原文地址:http://blog.csdn.net/hjimce/article/details/50099115 作者:hjimce ...

  2. java 人脸比对_java ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对

    java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 人脸检测 人脸跟踪 人脸属性检测(性别.年龄) 人脸三维角度检测 人脸对比 本文使用到的SDK为本人 ...

  3. 请基于Keil uVision5软件写出led流水灯代码

    首先,您需要确保您的开发板有一个LED,并且您已经安装了Keil uVision5软件.接下来,您可以使用以下代码编写led流水灯: #include<reg51.h>sbit LED = ...

  4. python调用摄像头人脸识别代码_OpenCV3-Python人脸识别方法—人脸识别与标记

    上接<OpenCV3-Python人脸识别方法-基于摄像头>,实际应用中,有时我们不仅需要检测人脸信息,可能还需对识别到的人脸进行判断(是否是某个特定的人)?接下来,本篇介绍基于openc ...

  5. 基于Python的OpenCV+TensorFlow+Keras人脸识别实现

    前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 完整工程及源代码请点击链接下载:人 ...

  6. 基于cnn的人脸识别_基于卷积神经网络(CNN)的人脸在线识别系统

    微信搜索"AI大道理",选择"置顶"公众号 重磅干货,深入讲解AI大道理 ------ 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统, ...

  7. pil python 安装_Python实现识别人脸特征并打印出来!

    通过Python的face_recognition模块实现人脸检测功能,首先需要安装好face_recognition包:可通过pycharm直接安装,也可以用pip安装,还可以通过anaconda安 ...

  8. python人脸特征提取_Python实现识别人脸特征并打印出来

    通过 Python 的face_recognition模块实现人脸检测功能,首先需要安装好face_recognition包:可通过pycharm直接安装,也可以用pip安装,还可以通过anacond ...

  9. 学习笔记:python人脸识别5-给识别出的人脸读出名字打招呼

    在实际应用中,识别到人脸后,说  XXX 早上好! 会更亲切,并且给用户确认已经识别的反馈信息 python 要读出文字(中文,英文)的声音,需要安装语音模块pypiwin32 和 pyttsx 开始 ...

最新文章

  1. cout的输出格式初探2
  2. 端计算(9)-android opencv(1)
  3. POJ - 3258 River Hopscotch(二分水题)
  4. php gd gif动画,我可以检测使用PHP和GD的animationGIF?
  5. Android Alarm自上而下 调试浅析
  6. linux init进程原理,Linux 系统下 init 进程的前世今生
  7. php自增删除开始,PHP的自增自减操作
  8. Hive依据key获取value
  9. [译] MDC-103 Flutter: Material Theming 的颜色、形状、高度和类型(Flutter)
  10. FPGA实验-VGA显示
  11. 马斯克血洗推特!传机器学习裁员90%,团队直接解散
  12. 2019新版35 U.S.C. 101专利适格性审查指南 新增「抽象概念三分类」及「整合至实际应用」判定标准
  13. ES 关于text和keyword两种类型数据搜索区别
  14. 产品经理实践【四川省地震需求分析】
  15. 莫再用唐僧式的唠叨施加影响----家长式管理者实施HOLA的障碍
  16. kotlin 属性重载
  17. iphone11计算机黑屏,苹果11突然黑屏开不了机怎么办?iphone11黑屏无法开机的解决方案...
  18. 读书笔记——OpenGL超级宝典
  19. 腾讯云服务器性能评测:配置参数16核 32G 28M
  20. 8月22日到26日工作收获

热门文章

  1. 重学JavaWeb —— JSP,简单全面一发入魂
  2. Java实现 LeetCode 328 奇偶链表
  3. iphoneipad图标尺寸
  4. CITA Release v0.18
  5. 全国青少年编程等级考试python一级真题2020年6月(含题库答题软件账号)
  6. 一键体验 Istio
  7. 8086指令系统中的寻址方式
  8. Docker 18.09.0更换阿里镜像加速器
  9. iOS11界面交互设计规范(iOS 11 Human Interface Guidelines)
  10. ESP32片外PSRAM