二进制图像中的对象检测

时间:2016-04-27 23:58:31

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

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

1

2

我需要在没有连接绳子的情况下获得玩具的边界矩形(在某些框架上它非常厚)。听起来很容易,但我不能想出一个很好的方法。

我尝试了与我裁剪的玩具模板的互相关。它不是很好,加上我需要矩形才能改变它的大小。电线增加了一些混乱。

由于脐带和偶尔的噪音,

meanShift()也没有显示出良好的效果。

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

我一直认为必须有一些更简单有效的解决方案。

2 个答案:

答案 0 :(得分:0)

为了取下附着的绳子,我只需要关闭一个开口。就像你首先重新连接关闭点一样,然后你擦除孤立点并切断绳子。

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

答案 1 :(得分:0)

根据你的第二张照片,关闭过程可能会移除玩具的大部分(因为玩具的身体边缘很薄),所以(如果我们可以假设玩具的位置和你应该首先使用凸包,然后在"图像的每一行"另外,寻找厚实的物体(基于玩具在所有部分的宽度比绳索或嘈杂点更多的事实)。在每一行中,每条水平线的长度都超过阈值,保留该线,否则将其删除。通过这种方式,您可以重建玩具的凸包,现在您可以轻松地将矩形装入其中。