Visual Studio C# VideoCapture

萝らか妹 提交于 2020-01-02 21:56:07

问题


A while ago I wrote some cool vision stuff in c++. Later I found out my code needs to be added into an existing executable that is written in c#. Therefor, I want to write the same vision algorithmes in c# in such a way that my code can be run as an executable.

I have downloaded Emgu 3.3 and I use OpenCV 3.4 and Visual Studio 2017. C# is new for me. I did the tutorial where you make your form, give it some buttons and assign functions to the buttons. That all worked fine.

Then I started to look for ways on how to import a videofeed from my webcam into my form. So I just want to get a live feed from my webcam in my form. After 3 days of frustration I have gotten totally confused with all the references. Which one do I need which one do I not need. Every code that I find and try to implement as a start seems to give a different issue. And all I want is just one clean screen with my camera feed.

So sorry for this super long story, but can someone please help me.

I know I need to create a picturebox. I just want to obtain a VideoCapture from my webcam and send this directly to the picturebox. As as start of course. From there on I can continue figuring stuff out but I need the base.

From there on I would like to perform imageprocessing on the videofeed and display another picturebox with the edited videofeed. But that's all for later!

I hope my question isn't too vague since I also do not supply some code..

Thank you


回答1:


A example of showing your Webcam in WinForm using VideoCapture of Emgu 3.3 is as below:

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);
            }
        }
    }

}


来源:https://stackoverflow.com/questions/49300510/visual-studio-c-sharp-videocapture

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!