2017-07-21 10 views
-2

EmguCV 2.2.1.1150でWebカメラを接続しても問題ありませんが、RTSPプロトコルを使用してIPカメラに接続すると数分で例外がスローされますが、例外。EmguCVキャプチャでの問題IPカメラの顔検出

private void btnDetectar_Click(object sender, EventArgs e) 
{ 
    //grabber = new Capture(@"rtsp://user:[email protected]:554/cam/realmonitor?channel=1&subtype=01?tcp"); // IP CAMERA 
    grabber = new Capture(); // WEBCAM 

    // Inicia la función FrameGrabber 
    Application.Idle += new EventHandler(FrameGrabber); 
    btnDetectar.Enabled = false; 
} 


void FrameGrabber(object sender, EventArgs e) 
{ 
    try 
    { 
     // Obtiene el "frame" actual del dispositivo de captura 
     currentFrame = grabber.QueryFrame().Resize(704, 480, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); 

     // Se convierte a escala de grises 
     Image<Gray, byte> gray = currentFrame.Convert<Gray, byte>(); 

     // Detector facial 
     MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(
       face, 
       1.2, 
       10, 
       Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, 
       new Size(gray.Width/6, gray.Height/6)); 

     // Acción para cada elemento detectado 
     foreach (MCvAvgComp faces in facesDetected[0]) 
     { 
      result = currentFrame.Copy(faces.rect).Convert<Gray, byte>().Resize(200, 200, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); 
      // dibuja rectangulo en rostro detectado      
      currentFrame.Draw(faces.rect, new Bgr(Color.Red), 3); 
     } 

     picUser.Image = currentFrame.ToBitmap(); 

    } 
    catch (Exception a) 
    { 
     String timeStamp = DateTime.Now.ToString(); 
     MessageBox.Show(" Hora: " + timeStamp + "\n Error: " + a.Message + "\n Stacktrace: " + a.StackTrace + "\n", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 

ですが、なぜでしょう:

私はこのコードを持っていますか?

+2

例外のテキストにヒントが含まれていると思われますか? – Blorgbeard

+0

Hora:21/07/2017 05:06:56 p。 m。 エラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。Stacktrace:en MultiFaceRec.FrmPrincipal.FrameGrabber(Object sender、EventArgs e)en c:\ FaceRecProOV \ MainForm.cs:línea115この行 "currentFrame = grabber.QueryFrame()。Resize(704、480、Emgu.CV. CvEnum.INTER.CV_INTER_CUBIC); ") – Leinad

+0

さて、この記事を読んで理解してください(https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it)質問です。それから、あなたはそれを解決するか、より狭く定義された質問をすることができます。 – Blorgbeard

答えて

0

まあ、私はEmgu CV 2.2.1.1150を3.0.0.2157に更新しなければなりませんでした。ちょうどそのEmgu CVバージョンを使用して動作します。