private Rect[] GetFacesInImage(Mat image)
        {
            Rect[] faces;
            lock (cascadeLock)
            {
                faces = Cascade.DetectMultiScale(image);
            }

            return(faces);
        }
Пример #2
0
        //Face detection
        private void DetectAndSaveImg(Mat image)
        {
            //Image to gray scale
            using (var grayImage = new Mat()) {
                Cv2.CvtColor(image, grayImage, ColorConversionCodes.BGR2GRAY);

                //Flattening the histogram
                Cv2.EqualizeHist(grayImage, grayImage);

                //Face recognition, Small faces excluded
                var mats = Cascade.DetectMultiScale(grayImage, 1.1, 3, 0, new Size(80, 80))
                           //Make rects focusing on facial parts
                           .Select(rect => new Rect(rect.X, rect.Y, rect.Width, rect.Height))
                           //Imaged cut out
                           .Select(image.Clone)
                           //Listing
                           .ToList();

                SaveImg(mats);
            }
        }