private void DrawName(Image <Bgr, byte> currentFrame, DetectedFace face) { currentFrame.Draw(face.Label, ref _font, new System.Drawing.Point(face.FaceInfo.rect.X - 2, face.FaceInfo.rect.Y - 2), new Bgr(System.Drawing.Color.LightGreen)); }
public DetectedFace DetectFirstFace(Image <Bgr, Byte> frame, string newLabel = null) { var result = new DetectedFace(); var gray = frame.Convert <Gray, Byte>(); var facesDetected = gray.DetectHaarCascade( _face, 1.2, 10, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); gray.Dispose(); if (!facesDetected[0].Any()) { return(null); } MCvAvgComp faceInfo = facesDetected[0].First(); result.FaceInfo = faceInfo; var faceImage = frame.Copy(faceInfo.rect) .Convert <Gray, byte>() .Resize(100, 100, INTER.CV_INTER_CUBIC); if (!String.IsNullOrEmpty(newLabel)) { _recognizerProvider.AddNewLabel(newLabel, faceImage); _rep.Save(newLabel, faceImage); result.Label = newLabel; return(result); } if (_recognizerProvider.HasConfiguredFaces()) { result.Label = _recognizerProvider.GetRecognizer() .Recognize(faceImage); } else { result.Label = UnknownLabel; } faceImage.Dispose(); return(result); }
private static void DrawFaceSquare(Image <Bgr, byte> currentFrame, DetectedFace face) { currentFrame.Draw(face.FaceInfo.rect, new Bgr(System.Drawing.Color.Red), 2); }