使用openCV查找图像轮廓

Whi*_*arf 2 c++ opencv image image-processing

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

car*_*eri 5

您可以使用背景减法技术.这有两种方法.

  1. 从当前帧中减去前一帧.仅两个帧中未更改的像素将导致零.参见cvSub,cvAbsDiff.
  2. 保持视频帧的运行平均值.请参阅OpenCV文档的" 运动分析和对象跟踪"部分中的函数cvRunningAvg.对于每个新帧,从当前帧中减去运行平均值.完成后,使用当前帧更新运行平均值.

使用上述方法之一后,您可以使用cvThresholdcvAdaptiveThreshold对生成的差异图像进行分段.这将产生二进制图像,理想情况下,图像为静态时为零,而运动存在时为1或255.

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