如何使用 EmguCV 在 C# 中将 Mat 转换为位图?

问题描述 投票:0回答:3

我正在尝试将 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 中的网络摄像头获取视频流? 似乎有效,但我使用的是新版本,所以该方法被删除了。

c# wpf emgucv
3个回答
4
投票

只需安装 Emgu.CV.Bitmap nuget 包并按如下方式使用它:

myimage.ToBitmap()


1
投票

我在安装后解决了这个问题:

Emgu.UI.windows
,现在,这段代码对我有用:

 var bitmap = Emgu.CV.BitmapExtension.ToBitmap(nextFrame);

0
投票

如果使用 WPF,您可以安装

Emgu.CV.Wpf
,然后将输出连接到
System.Windows.Controls.Image
对象。

    // Convert the Mat to a BitmapSource for display in WPF
    image.Source = nextFrame.ToBitmapSource();
© www.soinside.com 2019 - 2024. All rights reserved.