Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
        }