Ich habe Fenster Anwendung, die mehrere Gesicht erkennen und das Gesicht erfassen und als Bild speichern. Ich benutze den EMGU CV, um die Gesichtserkennung zu machen, lerne ich aus dem Beispielcode und dem Tutorial. Wenn das Gesicht als trainierter Datensatz erfasst werden muss, kann nur ein Gesicht gespeichert werden, obwohl 2 Gesichter erkannt wurden. Ich versuche, den Code zu ändern, aber es scheint nicht wie erwartet zu funktionieren. Unten ist der Code:EMgucv speichern mehrere Gesicht von der Webcam erkannt
gray = grabber.QueryGrayFrame().Resize(320, 240,
Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(
face,
1.2,
10,
Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,
new Size(20, 20));
foreach (MCvAvgComp f in facesDetected[0])
{
TrainedFace = currentFrame.Copy(f.rect).Convert<Gray, byte>();
TrainedFace = result.Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
trainingImages.Add(TrainedFace);
for (int i = 1; i < trainingImages.ToArray().Length + 1; i++)
{
trainingImages.ToArray()[i - 1].Save(Application.StartupPath + "/TrainedFaces/face" + i + ".bmp");
}
}
Die foreach-Schleife Schleife zweimal, wenn zwei Gesichter erkannt, aber das Gesicht speichern die gleiche ist. Irgendeine Idee, was schief geht?
Ich habe versucht und immer noch das Gleiche. Obwohl 2 verschiedene Gesichter in der Kamera erkannt werden und es 2 rote Rechteck zeichnen. Die foreach Schleife zweimal, aber es speichern das gleiche Gesicht. –