コード例 #1
0
        //For Tracking Object From Camera
        private void objectTrackingCam(Bitmap srcImage)
        {
            //Copy detected image to the new one
            if (radioButton1.Checked)
            {
                Bitmap newImage = (Bitmap)RGBImage.Clone();

                //Blob counter on the detected image
                BlobCounter bc = new BlobCounter();
                bc.MinHeight    = 5;
                bc.MinWidth     = 5;
                bc.FilterBlobs  = true;
                bc.ObjectsOrder = ObjectsOrder.Area;
                bc.ProcessImage(newImage);
                Rectangle[] rects = bc.GetObjectsRectangles();
                foreach (Rectangle recs in rects)
                {
                    if (rects.Length > 0)
                    {
                        Rectangle objectRect = rects[0]; //= recs;
                        Graphics  graph      = Graphics.FromImage(srcImage);

                        using (Pen pen = new Pen(Color.FromArgb(255, 0, 0), 2))
                        {
                            graph.DrawRectangle(pen, objectRect);
                        }

                        graph.Dispose();
                    }
                }

                //Draw tracked object on picture box
                pictureBox3.Image = srcImage;
            }

            else if (radioButton2.Checked)
            {
                Bitmap newImage = (Bitmap)HSLImage.Clone();

                //Blob counter on the detected image
                BlobCounter bc = new BlobCounter();
                bc.MinHeight    = 5;
                bc.MinWidth     = 5;
                bc.FilterBlobs  = true;
                bc.ObjectsOrder = ObjectsOrder.Area;
                bc.ProcessImage(newImage);
                Rectangle[] rects = bc.GetObjectsRectangles();
                foreach (Rectangle recs in rects)
                {
                    if (rects.Length > 0)
                    {
                        Rectangle objectRect = rects[0]; //= recs;
                        Graphics  graph      = Graphics.FromImage(srcImage);

                        using (Pen pen = new Pen(Color.FromArgb(255, 0, 0), 2))
                        {
                            graph.DrawRectangle(pen, objectRect);
                        }

                        graph.Dispose();
                    }
                }

                //Draw tracked object on picture box
                pictureBox3.Image = srcImage;
            }

            else if (radioButton3.Checked)
            {
                Bitmap newImage = (Bitmap)YCbCrImage.Clone();

                //Blob counter on the detected image
                BlobCounter bc = new BlobCounter();
                bc.MinHeight    = 5;
                bc.MinWidth     = 5;
                bc.FilterBlobs  = true;
                bc.ObjectsOrder = ObjectsOrder.Area;
                bc.ProcessImage(newImage);
                Rectangle[] rects = bc.GetObjectsRectangles();
                foreach (Rectangle recs in rects)
                {
                    if (rects.Length > 0)
                    {
                        Rectangle objectRect = rects[0]; //= recs;
                        Graphics  graph      = Graphics.FromImage(srcImage);

                        using (Pen pen = new Pen(Color.FromArgb(255, 0, 0), 2))
                        {
                            graph.DrawRectangle(pen, objectRect);
                        }

                        graph.Dispose();
                    }
                }

                //Draw tracked object on picture box
                pictureBox3.Image = srcImage;
            }
        }