private void btnDetect_Click(object sender, EventArgs e)
{
current = new Image<Bgr, byte>(filePath).Resize(300, 250, INTER.CV_INTER_CUBIC);
Image<Gray, byte> grayScale = current.Convert<Gray, byte>();
MCvAvgComp[][] detected = grayScale.DetectHaarCascade(face, scale, minNeighbors, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));
foreach (MCvAvgComp d in detected[0])
{
current.Draw(d.rect, new Bgr(Color.LawnGreen), 2);
if (trainingImgs.Count > 0)
{
Image<Gray, byte> dFace = current.Copy(d.rect).Convert<Gray, byte>().Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
MCvTermCriteria criteria = new MCvTermCriteria(trainingImgs.Count, epsilon); //count, epsilon value
EigenObjectRecognizer recognize = new EigenObjectRecognizer(trainingImgs.ToArray(), trainingNames.ToArray(), 0, ref criteria);
MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_TRIPLEX, 1, 1);
string name = recognize.Recognize(dFace);
current.Draw(name, ref font, new Point(d.rect.X - 2, d.rect.Y - 20), new Bgr(Color.Red));
}
}
picWebCam.Image = current.ToBitmap();
}