2017-07-19 173 views
0

我使用Emgu CV 2.4.0.1717,並且每當我聲明Mat類時它不存在。我正在嘗試使用可捕獲圖像的c#創建應用程序。這是我的面部識別項目。Emgu使用C#的CV圖像捕捉#

我試圖聲明一個Mat對象,但它不存在。我試過使用其他版本的Emgu CV,並且它工作。但是,HaarCascade不存在。它聲明我應該使用CascadeClassifier,但仍然存在錯誤。這裏是我的代碼:

public partial class Camera : Form 
{ 

    private VideoCapture cap; 
    private HaarCascade haar; 

    private void Camera_Load(object sender, EventArgs e) 
    { 
     // passing 0 gets zeroth webcam 
     cap = new VideoCapture(0); 
     // adjust path to find your xml 
     haar = new HaarCascade(
     "haarcascade_frontalface_default.xml"); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     using (Image<Bgr, byte> nextFrame = cap.QueryFrame()) 
     { 
      if (nextFrame != null) 
      { 

       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); 
       } 
       imgCamUser.Image = nextFrame.ToBitmap(); 
      } 
     } 
    } 
} 

回答

0

你試圖訪問的墊類是從emgucv 3+。而HaarCascade類是emgu的較低版本。

您需要將您的emgu從here升級到emgu 3,並使用CascadeClassifier而不是HaarCascade。