我如何在 emgu c# 中获取视频帧并播放到图像框中

How do i get video frames and playing into imagebox in emgu c#

我正在使用 emgucv,它是 opencv 的 'c#' 包装器 我想通过播放视频来读取视频流作为测试 我有一个视频,我想继续为此,我使用了 QueryFrame() 方法,但它只获取视频的第一帧。在第一帧它按预期计算视频内容,但黑屏到后面的帧不知道里面发生了什么。

public void processFrames(){
   capt = new Capture("video2.avi");

   Image<Bgr, Byte> ImageFrame = capt.QueryFrame().ToImage<Bgr, Byte();
   if (ImageFrame!=null ) {
      ImageFrame = capt.QueryFrame().ToImage<Bgr, Byte>();
      imageBox1.Image = ImageFrame;
   }
   else {
      timer1.Stop();
   }    
}

private void button1_Click(object sender, EventArgs e){ 
   timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e){
   processFrames();   
}

您实际上并没有移动到视频中的下一帧。 您需要跟踪上一帧位置并查询下一帧。