Shithun NK Ответов: 0

Линия# рисовать на веб-камеры потоковой передачи с использованием библиотеки aforge


Я начинающий программист на c#. мне нужно разработать программное обеспечение для рисования зеленых и красных линий с помощью 2 разных кнопок на потоковой передаче видео с веб-камеры.

public f21()
   {
       InitializeComponent();


       blobCounter.MinWidth = 2;
       blobCounter.MinHeight = 2;
       blobCounter.FilterBlobs = true;
       blobCounter.ObjectsOrder = ObjectsOrder.Size;
       try
       {
           // enumerate video devices
           videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

           if (videoDevices.Count == 0)
               throw new ApplicationException();

           // add all devices to combo
           foreach (FilterInfo device in videoDevices)
           {
               camerasCombo.Items.Add(device.Name);
           }

           camerasCombo.SelectedIndex = 0;
       }
       catch (ApplicationException)
       {
           camerasCombo.Items.Add("No local capture devices");
           videoDevices = null;
       }



   }
   private void f21_Load(object sender, EventArgs e)
   {
   }
   private void button1_Click(object sender, EventArgs e)
   {


       videoSourcePlayer2.SignalToStop();
       videoSourcePlayer2.WaitForStop();

       // videoDevices = null;
       VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[camerasCombo.SelectedIndex].MonikerString);
       videoSource.DesiredFrameSize = new Size(640, 480);
       videoSource.DesiredFrameRate = 12;


       videoSourcePlayer2.VideoSource = videoSource;
       videoSourcePlayer2.Start();

       //groupBox1.Enabled = false;
   }



   private void button3_Click_1(object sender, EventArgs e)
   {
       x = 1;
       Y = 0;
   }

   private void button4_Click(object sender, EventArgs e)
   {
       x = 0;
       Y = 1;
   }
   private void videoSourcePlayer2_MouseDown(object sender, MouseEventArgs e)
   {
       if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
       {
           // Remember the location where the button was pressed
           pt1 = e.Location;
           pt2 = new Point(e.X, 0);
       }
   }
   private void videoSourcePlayer2_Click(object sender, EventArgs e)
   {


       if (x == 1)
       {
           click = 1;
       }

       if (Y == 1)
       {
           click = 2;
       }


   }
   private void videoSourcePlayer2_NewFrame(object sender, ref Bitmap image)
   {


       Pen Green = new Pen(Color.Green, 3);
       Pen Greenb = new Pen(Color.ForestGreen, 6);
       Pen Red = new Pen(Color.Red, 3);
       Pen Redb = new Pen(Color.DarkRed, 6);
       Graphics g1 = Graphics.FromImage(image);

       if (click == 1)
       {

           g1.DrawLine(Green, pt1, pt2);

       }

       if (click == 2)
       {

           g1.DrawLine(Red, pt1, pt2);
       }
       g1.Dispose();

   }

   }


Что я уже пробовал:

Мне удалось транслировать видео и нарисовать линию с помощью Aforge.net библиотека.

Но после завершения одной строки и на следующей кнопке нажмите время, когда первая строка исчезает.

Может ли какой-нибудь гуру просветить меня на этот счет?

0 Ответов