private async Task <DetectionInfo> DetectFacesBing(Mat snaphsot) { try { var detectionImage = snaphsot.ToImage <Bgr, Byte>(); var bitmap = detectionImage.ToBitmap(); ICollection <Rectangle> facesRectangle = null; ICollection <Microsoft.ProjectOxford.Face.Contract.Face> faces = null; using (var imageFileStream = new MemoryStream()) { bitmap.Save(imageFileStream, ImageFormat.Jpeg); imageFileStream.Position = 0; faces = await DetectFaceHelper.DetectFacesBing(imageFileStream); var rectangles = faces.Select(face => face.FaceRectangle); facesRectangle = rectangles .Select((faceRectangle) => new Rectangle(faceRectangle.Left, faceRectangle.Top, faceRectangle.Width, faceRectangle.Height)) .ToList(); } return(new DetectionInfo(detectionImage, facesRectangle, faces)); } catch (Exception ex) { App.Log.Error(ex.FlattenException()); return(null); } }
private DetectionInfo DetectFacesOpenCV(Mat snaphsot) { long detectionTime; var facesRectangle = new List <Rectangle>(); var eyesRectangle = new List <Rectangle>(); DetectFaceHelper.DetectFacesOpenCV( snaphsot, _faceDetectionConfigFilePath, _eyeDetectionConfigFilePath, facesRectangle, eyesRectangle, out detectionTime); var detectionImage = snaphsot.ToImage <Bgr, Byte>(); return(new DetectionInfo(detectionImage, facesRectangle)); }