OpenCv:u!= 0从视频文件中读取帧时出现异常

时间:2017-01-12 12:07:21

标签: c# emgucv

我正在尝试从视频文件中获取帧,但在读取帧时,OpenCv:u!= 0异常被抛出。我正在使用Emgu.Cv dll。 我编写的代码如下:

private void GetVideoFrames(String Filename)
{
    try
    {
        captureFrame = new Capture(Filename);
        bool Reading = true;
        while (Reading)
        {
            using (frame = captureFrame.QueryFrame().ToImage<Bgr, Byte>())
            {
                if 
                if (frame != null)
                {
                    imageBox1.Image = frame;
                    frameCount++;
                }
                else
                {
                    Reading = false;
                }
            }
        }
    }

有人可以提供一些帮助。

2 个答案:

答案 0 :(得分:1)

可能是你需要释放记忆。防爆。 frame.Release();

答案 1 :(得分:0)

根据我的说法,你应该制作一张从相机中抓取的相框。你可以使用以下代码。它经过测试且没有错误。

    Capture captureFrame = new Capture(Filename);
    Mat frame = new Mat();
    Mat frame_copy = new Mat();

    //Capture Image from file
    private void GetVideoFrames(String Filename)
    {
        try
        {
            captureFrame = new Capture(Filename);
            captureFrame.ImageGrabbed += ShowFrame;
            captureFrame.Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    //Show in ImageBox
    private void ShowFrame(object sender, EventArgs e)
    {
        captureFrame.Retrieve(frame);
        frame_copy = frame;
        imageBox1.Image = frame_copy ;
    }