-2
Je me connecte une Webcam avec EmguCV 2.2.1.1150 fonctionne correctement, mais quand je connecte une caméra IP en utilisant le protocole RTSP ne fonctionne que pendant quelques minutes et émet une exception, mais avec Webcam pas jette exception.Problème avec EmguCV Capture IP cam Détection de visage
J'ai ce code:
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);
}
}
Pourquoi est-ce qui se passe?
Pensez-vous que peut-être le texte de l'exception contient un indice? – Blorgbeard
Hora: 21/07/2017 05:06:56 p. m. Erreur: La référence d'objet n'est pas définie sur une instance d'un objet. Stacktrace: fr MultiFaceRec.FrmPrincipal.FrameGrabber (expéditeur d'objet, EventArgs e) fr c: \ FaceRecProOV \ MainForm.cs: ligne 115 (cette ligne "currentFrame = grabber.QueryFrame(). Resize (704, 480, Emgu.CV. CvEnum.INTER.CV_INTER_CUBIC); ") – Leinad
Eh bien, commencez par lire/comprendre [ceci] (https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) question. Vous pourrez alors le résoudre ou poser une question plus précise. – Blorgbeard