예제 #1
0
        private void faceDetect(ushort j)
        {
            cvsbmp = UtilFn.BitmapImage2Bitmap(images[j]);

            var cascade = new Accord.Vision.Detection.Cascades.FaceHaarCascade();

            var detector = new Accord.Vision.Detection.HaarObjectDetector(cascade, minSize: 50,
                                                                          searchMode: Accord.Vision.Detection.ObjectDetectorSearchMode.Average);


            System.Drawing.Rectangle[] rectangles = detector.ProcessFrame(cvsbmp);
            List <Bitmap> listBitmap = new List <Bitmap>();

            foreach (System.Drawing.Rectangle r in rectangles)
            {
                listBitmap.Add(UtilFn.CropImage(cvsbmp, r.X, r.Y, r.Width, r.Height));
            }

            if (rectangles.Count() == 0)
            {
                imageInfo.Text = "No faces detected!";
            }
            else
            {
                //imagesEdited[j] = (converter.Convert(UtilFn.MergeImages(listBitmap), Type.GetType("BitmapImage"), null, null) as BitmapImage).Clone();
                foreach (var x in listBitmap)
                {
                    imagesEdited.Add((converter.Convert(x, Type.GetType("BitmapImage"), null, null) as BitmapImage).Clone());
                }
            }
        }
예제 #2
0
        public Element()
        {
            // Caracteristiques pour le rectangle
            _rectangle = new Rectangle
            {
                Width  = Width,
                Height = Height
            };

            // Images
            _imageBrush          = new ImageBrush();
            _rectangle.Fill      = _imageBrush;
            _rectangle.IsEnabled = true;
            _rectangle.PreviewMouseLeftButtonDown += LeftButtonDown;
            _rectangle.MouseLeftButtonUp          += LeftButtonUp;


            // Level Rectangle
            _levelRectangle = new Rectangle
            {
                Width  = 8,
                Height = 8
            };
            var        imageConverter = new WPFBitmapConverter();
            ImageBrush imageLvl       = new ImageBrush
            {
                ImageSource = (ImageSource)imageConverter.Convert(Properties.Resources.level_rect, null, null, null)
            };

            _levelRectangle.Fill             = imageLvl;
            _levelRectangle.IsHitTestVisible = false;

            // Level Label
            _levelLabel = new Label
            {
                Width            = 20,
                Height           = 20,
                FontSize         = 8,
                Foreground       = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0xB3, 0x7B)),
                Content          = _level.ToString(),
                IsHitTestVisible = false
            };

            // Click rect
            _clickBorder = new Border
            {
                Width  = Width,
                Height = Height - 10
            };
            int borderThickness = 2;

            _clickBorder.BorderThickness  = new Thickness(borderThickness, borderThickness, borderThickness, borderThickness);
            _clickBorder.BorderBrush      = new SolidColorBrush(Color.FromArgb(0xFF, 0xC9, 0xD6, 0x3A));
            _clickBorder.Visibility       = Visibility.Hidden;
            _clickBorder.IsHitTestVisible = false;
        }