【问题标题】:OpenCv:u!=0 Exception while reading frames from video fileOpenCv:u!=0 从视频文件中读取帧时出现异常
【发布时间】:2017-02-07 15:16:18
【问题描述】:

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

有人可以提供一些帮助吗?

【问题讨论】:

  • 你觉得using后面的if是正确和必要的吗?
  • 不,这只是一个错误
  • 您可以更正它,并请提供异常消息和堆栈跟踪

标签: c# emgucv


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多