0
我有窗口應用程序,它將檢測多個臉部並捕捉臉部並保存爲圖像。我使用EMGU CV來做臉部檢測,我從示例代碼和教程中學習。當需要將面部捕捉爲訓練數據集時,雖然它檢測到2個面,但只能存儲一個面。我嘗試修改代碼,但它看起來不像預期的那樣工作。下面是代碼:EMgucv保存從網絡攝像頭檢測到的多個臉部
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");
}
}
當檢測到2個臉部時,foreach循環將循環兩次,但臉部保存是相同的。任何想法出了什麼問題?
我試過了,仍然一樣。儘管在相機中檢測到2個不同的面並且繪製了2個紅色矩形。 foreach循環兩次,但保存了同一張臉。 –