2012-03-01 2 views
0

Я использую следующий код в WPF для отображения изображения в веб-камере, используя библиотеку EmguCv, теперь я хочу сохранить изображение на своем компьютере, у любого из вас есть идея, как это сделать? Какой метод должен прийти в button1_ClickМагазин изображений на компьютере с использованием EmguCV

 private Capture capture; 
     private DispatcherTimer timer; 

    #region ImageConverter 

    // Converting EmguCV image to WPF image 
    [DllImport("gdi32")] 
    private static extern int DeleteObject(IntPtr o); 

    public static BitmapSource ToBitmapSource(Emgu.CV.IImage image) 
    { 
     using (System.Drawing.Bitmap source = image.Bitmap) 
     { 
      IntPtr ptr = source.GetHbitmap(); 
      BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ptr, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 
      DeleteObject(ptr); 
      return bs; 
     } 
    } 

    #endregion 

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     capture = new Capture(); 
     // capture.FlipHorizontal = true; 
     timer = new DispatcherTimer(); 
     timer.Interval = new TimeSpan(150); 
     timer.Tick += new EventHandler(timer_Tick); 
     timer.Start(); 

    } 
    void timer_Tick(object sender, EventArgs e) 
    { 
     using (Image<Bgr, byte> Frame = capture.QueryFrame()) 
     { 
      if (Frame != null) 
      { 
       webcam.Source = ToBitmapSource(Frame); 

      } 
     } 
    } 



    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
    { 

     if (capture != null) 
     { 
      capture.Dispose(); 
     } 

    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 

    } 
} 
} 

ответ

1
Image<Bgr, byte> frame = capture.QueryFrame()); 
frame.Save(filename); 
Смежные вопросы