我想使用absdiff()函数来跟踪对象,我必须得到第二帧。
例如,我使用capture.queryframe(2134)获取第2134帧。我需要得到第2135帧。
我该怎么做?
感谢。
答案 0 :(得分: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
,或者只是在捕获方法中检查它。