【问题标题】:Paint detected objects OpenCV?绘制检测到的对象OpenCV?
【发布时间】:2014-09-02 23:44:30
【问题描述】:

背景减法。 结果证明 MOG 和 MOG2 没有用,因为它们假设第一帧是背景。

所以我逐帧减法。像这样

我的问题是现在将唯一检测到的对象涂成白色。
顺便说一句,我确实尝试了内置的 FindContours() 方法并获得了图像中的数千个轮廓。

【问题讨论】:

    标签: opencv paint background-subtraction


    【解决方案1】:

    对于findContours(),您可能会被误导。该方法假设一个二值化图像作为输入,如果它不是完全二值化的,它会将非零像素视为 1,无论是哪种颜色或灰度。 findContours

    因此,您的图像几乎已二值化,您可以观察到黑白区域。黑色区域被视为背景,非黑色区域(非零)分别被视为前景像素区域。 findContours() 只不过是“标记”连贯的前景像素(是的,区域)。所以你会得到一个向量列表(每个检测到的区域的点向量)。

    为了将整个总线检测为对象,您可能需要查找:convexHull 这也是(如果我没记错的话)一个顶点列表,它描述了一个所有(以前找到的)区域都在里面的区域。因此,您可能需要先减去异常值(例如图像底部的街道或阴影)。

    也很有趣:convexityDefects 和:approxPolyDP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 2016-10-06
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多