0

我想使用 absdiff() 函数来跟踪对象,我必须得到第二帧。

例如,我使用 capture.queryframe(2134) 获取第 2134 帧。我需要获得第 2135 帧。

我怎样才能做到这一点?

谢谢。

4

1 回答 1

0

首先,如果需要第二帧,最好和图片框分开保存。所以,pictureBox1.Image = capture.QueryFrame().ToBitmap();我建议不要这样做:

Image img = capture.QueryFrame().ToBitmap();
pictureBox1.Image = img;

在这种分离之后,很容易做到以下几点:

Image prevImage, currentImage; // define as class members or global variables

// and in the capturing method:
prevImage = currentImage;
currentImage = capture.QueryFrame().ToBitmap();
pictureBox1.Image = img;

所以,现在你有两个框架,可以做 absdiff 或任何你想做的事情。但是你还有一个问题——第一帧。但是很明显,第一帧是找不到任何对象的,所以可以currentImage在构造函数或者任何初始化方法中进行初始化,或者直接在你的捕获方法中检查。

于 2017-08-01T14:52:12.387 回答