Пример #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Crée une nouvelle capture de la webcam
            Capture capture = new Capture();

            // Pendant que l'application est au "repos", on va traiter les images reçues de la webcam
            Application.Idle += new EventHandler(delegate (object se, EventArgs ev)
            {
                // Récupère une image
                Image<Bgr, Byte> imgOrg = capture.QueryFrame();

                // Crée nouvel objet HandDetection avec l'image fournie
                detection = new HandDetection(imgOrg);

                // Détecte et sépare la peau du reste de l'image + trouve le contour qui correspond à la peau
                detection.FindSkinContours();

                // Si une main est détectée
                if(detection.IsHandDetected())
                {
                    // Dessine le contour de la peau et la bounding box sur l'image originale
                    detection.DrawSkinContour();
                    detection.DrawSkinBoundingBox();

                    // Extrait la "coque" et les verticles qui permettent de calculer le nombre de doigts
                    detection.ExtractHull();

                    // Calcule et dessine le nombre de doigts détectés
                    detection.DrawAndComputeFingers();
                }

                // Récupère les différentes images et les affiche (en les redimenssionnant pour qu'elles s'affichent en entier dans les ImageBox)
                ImageBoxOrig.Image = detection.GetImgOrg().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
                ImageBoxSkin.Image = detection.GetImgSkin().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
                ImageBoxProc.Image = detection.GetImgProc().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);

                // Affiche le nombre de doigts détectés
                NbFingersLabel.Text = detection.GetFingerNum().ToString();
            });
        }
Пример #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Crée une nouvelle capture de la webcam
            Capture capture = new Capture();

            // Pendant que l'application est au "repos", on va traiter les images reçues de la webcam
            Application.Idle += new EventHandler(delegate(object se, EventArgs ev)
            {
                // Récupère une image
                Image <Bgr, Byte> imgOrg = capture.QueryFrame();

                // Crée nouvel objet HandDetection avec l'image fournie
                detection = new HandDetection(imgOrg);

                // Détecte et sépare la peau du reste de l'image + trouve le contour qui correspond à la peau
                detection.FindSkinContours();

                // Si une main est détectée
                if (detection.IsHandDetected())
                {
                    // Dessine le contour de la peau et la bounding box sur l'image originale
                    detection.DrawSkinContour();
                    detection.DrawSkinBoundingBox();

                    // Extrait la "coque" et les verticles qui permettent de calculer le nombre de doigts
                    detection.ExtractHull();

                    // Calcule et dessine le nombre de doigts détectés
                    detection.DrawAndComputeFingers();
                }

                // Récupère les différentes images et les affiche (en les redimenssionnant pour qu'elles s'affichent en entier dans les ImageBox)
                ImageBoxOrig.Image = detection.GetImgOrg().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
                ImageBoxSkin.Image = detection.GetImgSkin().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
                ImageBoxProc.Image = detection.GetImgProc().Resize(0.5, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);

                // Affiche le nombre de doigts détectés
                NbFingersLabel.Text = detection.GetFingerNum().ToString();
            });
        }