码迷,mamicode.com
首页 > 其他好文 > 详细

【EMGU】EMGU中人脸检测的例子

时间:2015-05-27 12:26:30      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:emgu 人脸检测 opencv

Emgu:可以理解为opencv的另外一种形式的库,它可以兼容.NET的C#、C++、VB、python,也能支持跨平台,Windows, Linux, Mac OS X, iOS, Android 和 Windows Phone等等。

以下是C#中Emgu的简单实例,检测图像或者视频中是否有人脸。
如果有,会在图片框中显示人脸部分。

using System;
using System.Windows.Forms;
using System.Drawing;
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
 
namespace opencvtut
{
    public partial class Form1 : Form
    {
                private Capture cap;
                private HaarCascade haar;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
                using (Image<Bgr, byte> nextFrame = cap.QueryFrame())
                {
                        if (nextFrame != null)
                        {
                                // there's only one channel (greyscale), hence the zero index
                                //var faces = nextFrame.DetectHaarCascade(haar)[0];
                                Image<Gray, byte> grayframe = nextFrame.Convert<Gray, byte>();
                                var faces =
                                        grayframe.DetectHaarCascade(
                                                haar, 1.4, 4,
                                                HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
                                                new Size(nextFrame.Width/8, nextFrame.Height/8)
                                                )[0];
 
                                foreach (var face in faces)
                                {
                                        nextFrame.Draw(face.rect, new Bgr(0,double.MaxValue,0), 3);
                                }
                                pictureBox1.Image = nextFrame.ToBitmap();
                        }
                }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // passing 0 gets zeroth webcam
                        cap = new Capture(0);
            // adjust path to find your xml
                        haar = new HaarCascade(
                "..\\..\\..\\..\\lib\\haarcascade_frontalface_alt2.xml");
        }
    }
}


【EMGU】EMGU中人脸检测的例子

标签:emgu 人脸检测 opencv

原文地址:http://blog.csdn.net/u013617144/article/details/46042931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!