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

OpenCv:u!=0 Exception while reading frames from video file

我正在尝试从视频文件中获取帧,但在读取帧时,抛出了 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;
                }
            }
        }
    }

谁能提供一些帮助。

可能是你需要释放内存。前任。 frame.Release();

根据我的说法,您应该复制从相机中抓取的帧。你可以使用以下代码。它已经过测试并且没有错误。

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