Visual Studio C# 视频捕获

Visual Studio C# VideoCapture

不久前,我用 C++ 写了一些很棒的视觉内容。后来我发现我的代码需要添加到一个用 c# 编写的现有可执行文件中。因此,我想在 C# 中编写相同的视觉算法,这样我的代码就可以 运行 作为可执行文件。

我已经下载了 Emgu 3.3,我使用的是 OpenCV 3.4 和 Visual Studio 2017。C# 对我来说是新的。我完成了制作表单的教程,给它一些按钮并为按钮分配功能。一切正常。

然后我开始寻找将视频源从我的网络摄像头导入我的表单的方法。所以我只想以我的形式从我的网络摄像头获取实时信息。经过 3 天的挫折,我对所有参考资料都感到非常困惑。哪个我需要哪个我不需要。我发现并尝试作为开始实施的每一个代码似乎都会产生不同的问题。我想要的只是一个干净的屏幕和我的相机画面。

很抱歉这个超长的故事,但是有人可以帮助我吗?

我知道我需要创建一个图片框。我只想从我的网络摄像头获取 VideoCapture 并将其直接发送到图片框。作为开始当然。从那以后我可以继续弄清楚东西,但我需要基础。

从那时起,我想对视频源执行图像处理,并显示另一个包含编辑后的视频源的图片框。但这就是以后的事了!

我希望我的问题不会太含糊,因为我也没有提供一些代码..

谢谢

使用 Emgu 3.3 的 VideoCapture 在 WinForm 中显示网络摄像头的示例如下:

public partial class Form1 : Form
{
    VideoCapture _capture;
    private Mat _frame;

    private void ProcessFrame(object sender, EventArgs e)
    {
        if (_capture != null && _capture.Ptr != IntPtr.Zero)
        {
            _capture.Retrieve(_frame, 0);
            pictureBox1.Image = _frame.Bitmap;  
        }
    }

    public Form1()
    {
        InitializeComponent();

        _capture = new VideoCapture(0);
       
      
        _capture.ImageGrabbed += ProcessFrame;
        _frame = new Mat();
        if (_capture != null)
        {
            try
            {
                _capture.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}