protected override async void OnContentRendered(EventArgs e) { base.OnContentRendered(e); await foreach (var frame in _cap.CaptureFrames(CancellationToken.None)) { _currentFrame = frame.Clone(); var(rects, faces) = _faceDetection.DetectFrontalThenProfileFaces(frame); if (rects.Length == 1) { //_currentFace = FaceImg.CreateGrayscale(faces.First()); Cv2.Rectangle(frame, rects.First(), Scalar.Green); _frames++; if (_frames == 5 && !_stop) { photoBtn_Click(null, null); trainBtn_Click(null, null); trained.Text = _trained.ToString(); _frames = 0; } if (_frames == 2 && _autoPredict) { photoBtn_Click(null, null); predictBtn_Click(null, null); _frames = 0; } } image.Source = frame.ToBitmapImage(); } }
protected override async void OnContentRendered(EventArgs e) { base.OnContentRendered(e); await foreach (var frame in cap.CaptureFrames(CancellationToken.None)) { var rects = hc.DetectFrontalThenProfileFaces(frame); if (rects.Length == 1) { var landmarks = SharedFaceRecognitionModel.Model.FaceLandmark(LoadImage(frame)).ToList(); if (landmarks.Count > 0) { var fc = frame.Clone(); fc = norm.NormalizePosition(fc, rects[0], landmarks); Cv2.Resize(fc, fc, new Size(96, 96)); Cv2.ImShow("al", fc); } Cv2.Rectangle(frame, rects[0], Scalar.Green); } image.Source = frame.ToBitmapImage(); } }