private async void DrawFaceOutlines(Windows.Media.Core.FaceDetectedEventArgs e) { FaceOutlineCanvas.Children.Clear(); var faces = e.ResultFrame.DetectedFaces?.Where(x => x.FaceBox.Width != 0 && x.FaceBox.Height != 0); foreach (var face in faces) { var outline = new Rectangle { Style = FaceOutlineStyle, Height = face.FaceBox.Height, Width = face.FaceBox.Width, }; Canvas.SetLeft(outline, face.FaceBox.X); Canvas.SetTop(outline, face.FaceBox.Y); FaceOutlineCanvas.Children.Add(outline); //var pic = await cameraService.Photo.CaptureAsync(); //uint startPointX = (uint)Math.Floor(face.FaceBox.X * scale); //uint startPointY = (uint)Math.Floor(face.FaceBox.Y * scale); //uint height = (uint)Math.Floor(corpSize.Height * scale); //uint width = (uint)Math.Floor(corpSize.Width * scale); } var projection = faces.Select(x => new DetectedFaceEx { FaceBox = x.FaceBox }); var args = new FaceDetectedEventArgsEx { Faces = projection }; FaceDetected?.Invoke(this, args); }
private async void CameraService_FaceDetected(Object sender, Windows.Media.Core.FaceDetectedEventArgs e) { await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => DrawFaceOutlines(e)); }