Conmajia

Stop stealing sheep!

导航

< 20252 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

🙃️ 学习型人脸识别程序

源代码下载需要安装Emgu CV安装方法请百度 

很多朋友使用Emgu CV遇到CvInvoke()的报错我找到一种解决方法

EmguCV目录下bin里面的所有dll复制到C:\WINDOWS\SYSTEM32文件夹下这样就OK

如果还不OK试试把dll复制到程序目录\Debug

我这是玩玩而已欢迎高手指教但别说我这没意思hello world也没意思每天无数人照写

刚刚学着老外的作品做了一个没错自从有了Emgu CV模式识别的做法和模式简直成了标准

当然这给我这样图像处理还给老师很多年的差生来说是个福音

人脸识别特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术

人脸识别是一项热门的计算机技术研究领域它属于生物特征识别技术是对生物体一般特指人本身的生物特征来区分生物体个体 

我预期的设计目标是

  1. 检测人脸
  2. 学习检测到的人脸
  3. 利用学习库认人
  4. 支持摄像头和图片文件输入

做了1个多小时目前只支持摄像头已经完成了123功能有些使用上的细节还没有调整

效果如下用了火箭队的图其实我真心不是篮球迷

已知bug

  1. 误识如果学习库容量太少那么会出现把好几个人认成同一个人随着容量增大问题消失
  2. 重复识别对认人来说不影响认出2次和认出1次有太大区别吗
  3. 功能不全我只能说请看本贴标题

使用方法

  1. 确定你要有摄像头
  2. 选择webcam模式
  3. 建议选择auto stop在识别出内容后会自动停止
  4. start/stop开始/暂停
  5. Learn可以吧识别到的如果你觉得效果好脸存起来
  6. 给脸改名字Emgu CVDraw方法绘制的文字是不支持中文的使用下面的代码完成中文人名绘制
  7. 在摄像头面前跑跑看能不能认出你来
复制代码
绘制中文人名
 1         Dictionary<string, Rectangle> foundPeople = new Dictionary<string, Rectangle>();
 2 
 3         float xfactor;
 4         float yfactor;
 5 
 6         private void imageBox_Paint(object sender, PaintEventArgs e)
 7         {
 8             if (foundPeople.Count > 0)
 9             {
10                 // 缩放
11                 xfactor = (float)imageBox.Width / (float)current.Bitmap.Width;
12                 yfactor = (float)imageBox.Height / (float)current.Bitmap.Height;
13 
14                 foreach (string name in foundPeople.Keys)
15                 {
16                     e.Graphics.DrawString(
17                         name,
18                         this.Font,
19                         Brushes.Red,
20                         foundPeople[name].X * xfactor,
21                         foundPeople[name].Y * yfactor);
22                 }
23             }
24         }
复制代码

效果如下 

 

全文完

posted on2012-05-12   Conmajia  阅读(6417)  评论(0编辑  收藏  举报

点击右上角即可分享
微信分享提示