使用openCV查找图像轮廓

时间:2011-01-21 08:12:29

标签: c++ image image-processing opencv

因为我想跟踪一个物体的运动,我需要一系列图像的轮廓。 有人知道怎么做这个吗? 轮廓蒙版是具有非零像素的二进制图像,其中运动发生

2 个答案:

答案 0 :(得分:5)

您可以使用背景扣除技术。这有两种方法。

  1. 从当前帧中减去前一帧。仅两个帧中未更改的像素将导致零。请参阅cvSubcvAbsDiff
  2. 保持视频帧的平均。请参阅OpenCV文档的cvRunningAvg部分中的函数Motion Analysis and Object Tracking。对于每个新帧,从当前帧中减去运行平均值。完成后,使用当前帧更新运行平均值。
  3. 使用上述方法之一后,您可以使用cvThresholdcvAdaptiveThreshold对生成的差异图像进行细分。这将产生二进制图像,理想情况下,图像为静态时为零,而运动存在时为1或255。

    虽然您未在问题中提及此问题,但您可以继续计算二进制图像的轮廓。那是cvFindContours

答案 1 :(得分:2)