2012-03-01 42 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);