赞
踩
本来在两天前就应该写这篇文章的,到今天已经拖了两天了,不想再拖了,拖,只会引发不好的结果。
这两周利用Emgu做了一个脸部识别的小工具,只是自己学习熟悉Winform编程而已。实现脸部识别网上有很多的例子和方法,这里简单说一下自己的理解吧
C++开发脸部识别的软件时,(准确度要求不高的话)一般使用的时OPENCV。Emgu是C#版本的OPENCV。具体可参考https://www.zhihu.com/question/19561362
本篇文章的代码主要借用:
http://blog.csdn.net/conmajia/article/details/7596732?ADUIN=250900254&ADSESSION=1392340382&ADTAG=CLIENT.QQ.5287_.0&ADPUBNO=26295
获取Emgu不同版本 点我
配置环境 点我
脸部识别分为静态识别(图片上的人脸),动态识别(调用摄像头),以下为写代码思路。
一、获取图片或调用摄像头
二、调用相关函数进行识别
三、,画出人脸框,将识别出来的人脸存放在pictureBox控件中,一个pictureBox放置一张人脸,最后都保存在容器控件中
基于以上思路,程序界面如下:
界面控价介绍:
Pic…按钮载入图像,clear按钮清除控件值,start/stop按钮开启摄像头。train按钮和Save按钮是后来想实现学习库加上去的,目前还没有实现。
由于获取摄像头一帧图像是用定时器做的,由此有个抓取图像间隔时间设置。rectangleparameter参数是函数Detect第三个参数,该参数值严重影响识别人脸的准确度,需要根据不同环境仔细调试
最小码的富文本框是用来显示一些信息的。
一、获取图片或调用摄像头
1. 声明一个全局变量,表示载入的图像,或者抓取的摄像头画面的一帧图像代码如下
private Image<Bgr, byte> currentImage;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。