日期:2014-05-17  浏览次数:20933 次

「玩一玩」用 C# 做简单的人脸识别
纠结了半天,要不要发到图像论坛

鉴于这个东西没有任何理论分析之类,只是利用现成的库和训练库,主要是如何用 C# 实现,所以就发这里吧


老货存档

------------看起来像分割线的东西---------


老规矩,先上 DEMO 和源码 (需要安装 EmguCV 库)

点我下载

准备工作


下载 EmguCV

傻瓜安装后,把 bin 目录添加到环境变量里去

比如安装在 X:\EmguCV\ 目录下,就在命令行输入这句话

C# code
PATH X:\EmguCV\bin;%PATH%



EmguCV 和 OpenCV

(这段话来自百度)


引用OpenCV 的全称是:Open Source Computer Vision Library



OpenCV于1999年由 Intel 建立,现在由 Willow Garage 提供支持。

OpenCV 是一个基于 BSD 许可证授权(开源)发行的跨平台计算机视觉库,

可以运行在 Linux、Windows 和 Mac OS 操作系统上。

它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,

同时提供了 Python、Ruby、MATLAB 等语言的接口,

实现了图像处理和计算机视觉方面的很多通用算法。


EmguCV 简单来说就是 C# 版本的 OpenCV


人脸识别

理论的东西,我还真不太了解,总之就是利用 EmguCV 的层叠识别加人脸训练库,然后对图像进行分析

现成的训练库我放到源码里了,haarcascade_eye.xml 和 haarcascade_frontalface_alt_tree.xml

下面是做出来的玩意



多来点人试试




来点搞笑的,在纸上画一个小人,也识别出来了,看来以后冒充别人拿张照片在摄像头前晃晃就行




抛砖引玉,希望大家多找点乐子,不要一天到晚总是 3 层、CS、DataGrid、存储过程。。

公司的事情留在公司就行,别太执着。。

------解决方案--------------------
漂亮,支持一个
------解决方案--------------------
感谢分享,推荐下。
------解决方案--------------------
EmguCV 很强大.....感谢楼主分享..
------解决方案--------------------
收藏。
------解决方案--------------------
纸上画一个小人
------解决方案--------------------
恩恩 楼主很强大
------解决方案--------------------
感谢楼主
------解决方案--------------------
真的不错。 支持LZ。
我觉得LZ的马赛克亮了~ 很亮~
------解决方案--------------------
good。 不错。 学习了。
------解决方案--------------------
楼主很强大
------解决方案--------------------
公司的事情留在公司就行,别太执着。。
------解决方案--------------------
great job!
------解决方案--------------------
非常感谢
------解决方案--------------------
好玩,回去下载下来玩玩。
------解决方案--------------------
LZ你知道不知 我就是等你写这个出来的哈 之前做过 没成功 呵呵
------解决方案--------------------
感谢分享,顶起
------解决方案--------------------
这个……
果然弓虽
------解决方案--------------------
第一张图有几个人脸没出来嘛。。。
------解决方案--------------------
不错不错,强烈支持
------解决方案--------------------
初始化的时候报错了。

haar = new HaarCascade(filename); 

未处理的TypeInitializationException,Emgu.CV.CvInvoke的类型初始值设定项引发异常。