因为我想跟踪物体的运动,所以我需要图像序列的轮廓。 有人知道怎么做这个吗? 剪影蒙版是一个二值图像,在运动发生的地方有非零像素
最佳答案
您可以使用背景减法 技术。这里有两种方法。
- 从当前帧中减去前一帧。只有两个帧中没有改变的像素才会为零。参见 cvSub , cvAbsDiff .
- 保持视频帧的运行平均值。查看函数 cvRunningAvg在Motion Analysis and Object Tracking OpenCV 文档的一部分。对于每个新帧,从当前帧中减去运行平均值。完成后,使用当前帧更新运行平均值。
使用上述方法之一后,您可以使用 cvThreshold 对生成的差异图像进行分割或 cvAdaptiveThreshold .这将生成二值图像,理想情况下,图像静止时为 0,运动时为 1 或 255。
虽然您在问题中没有提到这一点,但您可以继续计算二值图像的轮廓。有 cvFindContours为此。
关于c++ - 使用 openCV 查找图像轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4756690/