我在WPF中使用以下代码在使用EmguCv库的网络摄像头中显示图像现在我想在我的计算机上保存图像你们有任何想法如何做到这一点? button1_click
应该采用什么方法 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)
{
}
}
}
答案 0 :(得分:1)
Image<Bgr, byte> frame = capture.QueryFrame());
frame.Save(filename);