Я использую Emgu версии 2.2.1.1150, и в настоящее время он может обнаружить обнаженное лицо и глаза. Но когда я ношу маску, она не обнаруживает лица.
Я использую haarcascade_frontalface_default. xml для обнаружения лица и haarcascade_eye. xml для обнаружения глаза.
Есть ли способ определить лицо или человека в маске, как на картинке выше? Мой текущий код для обнаружения лица и глаз, как показано ниже: -
currentFrame = capture.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
gray = currentFrame.Convert<Gray, Byte>();
MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(face, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new System.Drawing.Size(20, 20));
foreach (MCvAvgComp f in facesDetected[0])
{
currentFrame.Copy(f.rect).Convert<Gray, byte>().Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
currentFrame.Draw(f.rect, new Bgr(System.Drawing.Color.Red), 1);
gray.ROI = f.rect;
MCvAvgComp[][] eyesDetected = gray.DetectHaarCascade(eye, 1.1, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new System.Drawing.Size(20, 20));
gray.ROI = System.Drawing.Rectangle.Empty;
foreach (MCvAvgComp ey in eyesDetected[0])
{
System.Drawing.Rectangle eyeRect = ey.rect;
eyeRect.Offset(f.rect.X, f.rect.Y);
currentFrame.Draw(eyeRect, new Bgr(System.Drawing.Color.Blue), 1);
}
}
imageFrameGrabber.Source = currentFrame.ToBitmapSource();