public void DetectFaces() { try { Update_DetectorImageScale_DividedBy_CameraViewImageScale(); var scale = DetectorImageScale_DividedBy_CameraViewImageScale; var detectorImageWidth = (int)(CameraViewImageWidth * scale); var detectorImageHeight = (int)(CameraViewImageHeight * scale); if (false) { Debug.WriteLine("DetectorImageWidth: " + detectorImageWidth); Debug.WriteLine("DetectorImageHeight: " + detectorImageHeight); } if (ApplicationCommonSettings.IsDeveloperRelease) { DetectionElapsedStopwatch.Reset(); DetectionElapsedStopwatch.Start(); } DlibArray2dUcharImage.ResizeImage(detectorImageWidth, detectorImageHeight); DetectedFaceRectsInCameraViewImage = DlibHogSvm.DetectFaces(DlibArray2dUcharImage, DlibHogSvmThreshold) .Select(e => new System.Drawing.Rectangle((int)(e.X / scale), (int)(e.Y / scale), (int)(e.Width / scale), (int)(e.Height / scale))) .ToList(); if (ApplicationCommonSettings.IsDeveloperRelease) { DetectionElapsedMilliseconds = (int)DetectionElapsedStopwatch.ElapsedMilliseconds; } } catch (Exception ex) { if (ApplicationCommonSettings.IsDebugging) { Debugger.Break(); } Console.WriteLine(ex.Message); } }
public void DetectFaces(OpenCvSharp.Mat inputColorImage, double threshold) { if (IsEnabled == false) { return; } Trace.Assert(inputColorImage != null); Elapsed.Restart(); Image.SetBitmap(inputColorImage.ToBitmap()); DetectedFaceRects = DlibHogSvm.DetectFaces(Image, threshold) .Select(e => new OpenCvSharp.Rect(e.X, e.Y, e.Width, e.Height)); Elapsed.Stop(); var fps = (1000.0 / (double)Elapsed.ElapsedMilliseconds); FpsFiltered = 0.7 * FpsFiltered + 0.3 * fps; }