private void matchFaceToolStripMenuItem_Click(object sender, EventArgs e) { if (FaceList.Count == 0) MessageBox.Show("Please enroll faces first", "Error"); else { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "JPEG (*.jpg)|*.jpg|Windows bitmap (*.bmp)|*.bmp|All files|*.*"; if (dlg.ShowDialog() == DialogResult.OK) { try { string fn = dlg.FileNames[0]; TFaceRecord fr = new TFaceRecord(); fr.ImageFileName = fn; fr.FacePosition = new FSDK.TFacePosition(); fr.FacialFeatures = new FSDK.TPoint[FSDK.FSDK_FACIAL_FEATURE_COUNT]; fr.Template = new byte[FSDK.TemplateSize]; try { fr.image = new FSDK.CImage(fn); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error loading file"); } fr.FacePosition = fr.image.DetectFace(); if (0 == fr.FacePosition.w) MessageBox.Show("No faces found. Try to lower the Minimal Face Quality parameter in the Options dialog box.", "Enrollment error"); else { fr.faceImage = fr.image.CopyRect((int)(fr.FacePosition.xc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.xc + Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc + Math.Round(fr.FacePosition.w * 0.5))); bool eyesDetected = false; try { fr.FacialFeatures = fr.image.DetectEyesInRegion(ref fr.FacePosition); eyesDetected = true; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error detecting eyes."); } if (eyesDetected) { fr.Template = fr.image.GetFaceTemplateInRegion(ref fr.FacePosition); // get template with higher precision } } Results frmResults = new Results(); frmResults.Go(fr); } catch (Exception ex) { MessageBox.Show("Can't open image(s) with error: " + ex.Message.ToString(), "Error"); } } } }
private void matchFaceToolStripMenuItem_Click(object sender, EventArgs e) { if (FaceList.Count == 0) { MessageBox.Show("Please enroll faces first", "Error"); } else { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "JPEG (*.jpg)|*.jpg|Windows bitmap (*.bmp)|*.bmp|All files|*.*"; if (dlg.ShowDialog() == DialogResult.OK) { try { string fn = dlg.FileNames[0]; TFaceRecord fr = new TFaceRecord(); fr.ImageFileName = fn; fr.FacePosition = new FSDK.TFacePosition(); fr.FacialFeatures = new FSDK.TPoint[FSDK.FSDK_FACIAL_FEATURE_COUNT]; fr.Template = new byte[FSDK.TemplateSize]; try { fr.image = new FSDK.CImage(fn); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error loading file"); } fr.FacePosition = fr.image.DetectFace(); if (0 == fr.FacePosition.w) { MessageBox.Show("No faces found. Try to lower the Minimal Face Quality parameter in the Options dialog box.", "Enrollment error"); } else { fr.faceImage = fr.image.CopyRect((int)(fr.FacePosition.xc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.xc + Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc + Math.Round(fr.FacePosition.w * 0.5))); bool eyesDetected = false; try { fr.FacialFeatures = fr.image.DetectEyesInRegion(ref fr.FacePosition); eyesDetected = true; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error detecting eyes."); } if (eyesDetected) { fr.Template = fr.image.GetFaceTemplateInRegion(ref fr.FacePosition); // get template with higher precision } } Results frmResults = new Results(); frmResults.Go(fr); } catch (Exception ex) { MessageBox.Show("Can't open image(s) with error: " + ex.Message.ToString(), "Error"); } } } }