我正在使用Visual Studio的emgucv插件开发一个使用我的网络摄像头的项目。该项目在Windows中运行良好,适合应用。但是当我使用将项目导入我的WPF并运行它时,它只显示图像框但不显示网络摄像头。请问我该怎么办?
答案 0 :(得分:0)
这是因为要显示图像,WPF不使用PictureBox
或ImageBox
。
您可以将单个帧转换为位图,然后更新图像。
Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(Openfile.FileName);
srcImg.Source = BitmapSourceConvert.ToBitmapSource(myImage);
BitmapSourceConvert类:
public static class BitmapSourceConvert
{
[DllImport("gdi32")]
private static extern int DeleteObject(IntPtr o);
public static BitmapSource ToBitmapSource(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;
}
}
}