0
私は複数の顔を検出し、顔を捕捉して画像として保存するウィンドウアプリケーションを持っています。 EMGU CVを使って顔検出を行い、サンプルコードとチュートリアルから学びます。訓練されたデータセットとして顔をキャプチャする必要がある場合、顔を2つ検出したにもかかわらず1つの顔しか保存できません。コードを修正しようとしましたが、期待通りに動作しないようです。以下のコードです: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");
}
}
foreachループがループ二回。どんなアイデアが間違っていますか?
私は同じことをやってみました。カメラには2つの異なる顔が検出され、2つの赤い矩形が描かれています。 foreachは2回ループしますが、同じ面を保存します。 –