2011-01-21 158 views
2

因为我想跟踪对象的运动,我需要图像序列的轮廓。 有谁知道,该怎么做? 轮廓蒙版是一个二进制图像,其中运动发生的非零像素使用openCV查找图像轮廓

回答

5

您可以使用背景减法技术。以下是两种做法。

  1. 从当前帧中减去前一帧。只有两个帧中没有改变的像素都会导致零。见cvSub,cvAbsDiff
  2. 保持一个运行平均值的视频帧。请参阅OpenCV文档Motion Analysis and Object Tracking部分中的功能cvRunningAvg。对于每个新帧,从当前帧中减去运行平均值。完成后,使用当前帧更新运行平均值。

在使用上述方法之一后,您可以使用cvThresholdcvAdaptiveThreshold对得到的差异图像进行分割。这将产生一个二进制图像,理想情况下图像是静止的为零,以及运动存在的位置为1或255。

虽然你没有在你的问题中提到过,但是你可以继续计算二值图像的轮廓。那有cvFindContours