【问题标题】:Object detection in binary image二值图像中的目标检测
【发布时间】:2016-04-27 23:58:30
【问题描述】:

此任务来自于在稳定的背景上跟踪对象。到目前为止,我能够移除背景并获得这样的二进制掩码:

我需要得到玩具的边界矩形,没有连接线(在某些框架上它很厚)。听起来很容易,但我想不出一个好的方法。

我尝试与我裁剪的玩具模板进行互相关。这不是很好,而且我需要矩形来改变它的大小。绳子又添了一些乱七八糟的东西。

meanShift() 也没有显示出良好的结果,因为绳索和偶尔的噪音。

现在我使用 findContours() 进行了一些调整,但它仍然会在看起来还不错的图像上产生一些奇怪的界限。

我一直在想一定有一些更简单有效的解决方案。

【问题讨论】:

    标签: opencv image-processing object-detection binary-image


    【解决方案1】:

    为了移除连接的绳索,我只需先关闭然后打开。像这样,您首先重新连接关闭点,然后擦除隔离点并切断电源线。

    然后你可以用相应的 MatLab 函数计算边界框。

    【讨论】:

    • 关闭/打开操作完成后,可能会残留一些不需要的 blob。您可以通过它们的轮廓属性“过滤”它们(例如:如果 blob 的周长或表面不够高,您可以忽略它)
    【解决方案2】:

    根据您的第二张图片,闭合过程可能会移除玩具的很大一部分(因为玩具身体的边缘很薄),所以(如果我们可以假设玩具和绳索的位置始终是垂直的)你应该首先使用凸包,然后在“图像的每一行”中分别寻找较厚的物体(基于玩具在所有部分的宽度都远大于绳索或噪声点的事实)。在每一行中,每条长度超过阈值的水平线,保留​​该线,否则将其删除。通过这种方式,您将只重建玩具的凸包,现在您可以轻松地将矩形拟合到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 2016-10-15
      • 2023-04-09
      • 2017-10-06
      • 1970-01-01
      • 2015-08-29
      • 2013-04-14
      • 2019-09-18
      相关资源
      最近更新 更多