C#结合emgucv进行人脸检测

来源:互联网 发布:遗传算法的优点 编辑:程序博客网 时间:2024/06/05 02:43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.Util;
using System.Threading;

namespace testCamera
{
    public partial classForm1 : Form
    {
       Capture capture = new Capture();
       bool myflag = true;
       double scale = 1.5;
       bool stopAndExit = true;
       public Form1()
       {
          InitializeComponent();
       }

       private void button2_Click(object sender,EventArgs e)
       {
              myflag=true;
               stopAndExit= true;
              button3.Text = "停止";
              Thread t = new Thread(WriteY);
              t.Start();                      // RunWriteY on the new threa

       }

        void WriteY()
       {    
           while(myflag)
           {
              
          Image<Bgr, Byte> frame =capture.QueryFrame();
   frame=frame.Flip(Emgu.CV.CvEnum.FLIP.HORIZONTAL);
          Image<Bgr, Byte> smallframe =frame.Resize(1 / scale);//缩放摄像头拍到的大尺寸照片
          Image<Gray, Byte> gray =smallframe.Convert<Gray, Byte>();//Convert it to Grayscale
          gray._EqualizeHist();//均衡化
          HaarCascade face = newHaarCascade("haarcascade_frontalface_alt2.xml");
          MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(face, 1.1, 2,Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(30,30));

           foreach(MCvAvgComp f in facesDetected[0])
           {
              frame.Draw(f.rect, newBgr(Color.Red), 3);//绘制检测框
           }
          imageBox1.Image=frame;
           }


       }

       private void button3_Click(object sender,EventArgs e)
       {
           if(stopAndExit)
           {
              myflag = false;
              button3.Text = "关闭界面";
              stopAndExit =!stopAndExit;
           }
           else
           {
              this.Close();
                   
       }
    }
}
C#结合emgucv进行人脸检测

0 0