2013-12-25 2 views
1

Я пытаюсь создать программу, которая будет делать снимок пользователя 3 раза и сохранять эти картинки на рабочем столе. Моя проблема заключается в том, что она сохраняет только картинку вместо того, чтобы делать снимок 3 раза.Множественный захват изображения с использованием библиотеки emgucv

private void Form1_Load(object sender, EventArgs e) 
{ 
    bool useCam = true; 
    if (!useCam) 
     measureImage(null); 
    else 
    { 
     try 
     { 
      camera = new Capture(); 
     } 
     catch (Exception exc) 
     { 
      MessageBox.Show(exc.Message); 
      return; 
     } 

     Application.Idle += viewImage; 
     captureProcess = true; 
    } 
} 

здесь код отлов ...

private void btnCapture_Click(object sender, EventArgs e) 
{ 
    for (int ctr = 0; ctr < 3; ctr++) 
    { 
     if (captureProcess == true) 
     { 
      string data=""; 
      Application.Idle -= viewImage; 

      SaveFileDialog dlg = new SaveFileDialog(); 

      if (dlg.ShowDialog() == DialogResult.OK) 
      { 
       img.ToBitmap().Save(@"C:\\Users\\Julie\\Desktop\\" + ctr + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); 

         data = dlg.FileName + ".bmp"; 
         MessageBox.Show(data); 
         measureImage(data); 
         Form1_Load(sender, e); 
      } 
      else 
      { 
       Application.Exit(); 
      } 

     } 

    } 
      captureProcess = false; 
} 

ответ

0

Предположив captureProcess является переменной в окне рамки, вы устанавливаете его ложным в течение первого for цикла, так что второй и третий никогда не выполняются из-за проверки if(captureProcess == true).

+0

извините, сэр. Я отредактировал код captureProcess = false находится за пределами forloop – newbie07

Смежные вопросы