【问题标题】:finding image silhouette using openCV使用openCV查找图像轮廓
【发布时间】:2011-06-13 00:05:27
【问题描述】:

因为我想跟踪对象的运动,所以我需要图像序列的轮廓。 有人知道怎么做这个吗? 剪影蒙版是一个二值图像,在发生运动的地方具有非零像素

【问题讨论】:

    标签: c++ image image-processing opencv


    【解决方案1】:

    【讨论】:

    • @UtkarshSinha 链接已损坏。
    • @JayDave 修复了链接。这些年来,URL 发生了变化。 :(
    【解决方案2】:

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

    1. 从当前帧中减去前一帧。只有两个帧中未更改的像素才会产生零。请参阅cvSubcvAbsDiff
    2. 保持视频帧的运行平均值。请参阅 OpenCV 文档的 Motion Analysis and Object Tracking 部分中的函数 cvRunningAvg。对于每个新帧,从当前帧中减去运行平均值。完成后,使用当前帧更新运行平均值。

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

    虽然您在问题中没有提到这一点,但您可以继续计算二值图像的轮廓。有cvFindContours

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 2023-03-09
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 2019-09-09
      相关资源
      最近更新 更多