我正在尝试将 Mat 转换为位图以打开我的网络摄像头,但没有成功。但是,与此问题相比,我看到了一个具有相同上下文的问题,但没有其他用户的任何答案:question,
这是使用的代码:
private void OpenWebcam_Click(object sender, RoutedEventArgs e)
{
var capture = new Emgu.CV.VideoCapture();
using (var nextFrame = capture.QueryFrame())
{
if (nextFrame != null)
{
image.Source = nextFrame.ToBitmap(); // error here because there is no ToBitmap method
}
}
}
请注意我在这个问题中找到的代码如何从 emgu cv 中的网络摄像头获取视频流? 似乎有效,但我使用的是新版本,所以该方法被删除了。
只需安装 Emgu.CV.Bitmap nuget 包并按如下方式使用它:
myimage.ToBitmap()
我在安装后解决了这个问题:
Emgu.UI.windows
,现在,这段代码对我有用:
var bitmap = Emgu.CV.BitmapExtension.ToBitmap(nextFrame);
如果使用 WPF,您可以安装
Emgu.CV.Wpf
,然后将输出连接到 System.Windows.Controls.Image
对象。
// Convert the Mat to a BitmapSource for display in WPF
image.Source = nextFrame.ToBitmapSource();