【发布时间】:2017-12-22 20:39:35
【问题描述】:
我有一个窗口应用程序,它将检测多张人脸并捕获人脸并保存为图像。我使用 EMGU CV 进行人脸检测,我从示例代码和教程中学习。当它需要将人脸捕获为训练数据集时,它只能存储一张人脸,尽管它检测到了 2 张人脸。我尝试修改代码,但似乎没有按预期工作。下面是代码:
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 循环将循环两次,但人脸保存是相同的。知道出了什么问题吗?
【问题讨论】:
标签: c# emgucv face-recognition