Opencv 二值图像中的目标检测
此任务来自于在稳定背景下跟踪对象。到目前为止,我能够移除背景并获得如下二进制掩码: 我需要得到玩具的边界矩形,没有连接到它的绳子(在一些框架上它相当厚)。听起来很简单,但我想不出一个好办法 我试着用我裁剪的玩具的模板进行互相关。它不是很好,而且我需要矩形来改变它的大小。绳子又弄得一团糟Opencv 二值图像中的目标检测,opencv,image-processing,object-detection,binary-image,Opencv,Image Processing,Object Detection,Binary Image,此任务来自于在稳定背景下跟踪对象。到目前为止,我能够移除背景并获得如下二进制掩码: 我需要得到玩具的边界矩形,没有连接到它的绳子(在一些框架上它相当厚)。听起来很简单,但我想不出一个好办法 我试着用我裁剪的玩具的模板进行互相关。它不是很好,而且我需要矩形来改变它的大小。绳子又弄得一团糟 meanShift() 现在我使用了findContours() 我一直在想,一定有更简单有效的解决办法。为了去掉连接的电线,我只需先关上再打开。就像这样,首先重新连接闭合点,然后清除隔离点并切断电源线 然后
meanShift()
现在我使用了findContours()
我一直在想,一定有更简单有效的解决办法。为了去掉连接的电线,我只需先关上再打开。就像这样,首先重新连接闭合点,然后清除隔离点并切断电源线
然后,您可以使用相应的MatLab函数计算边界框。为了移除连接的线缆,我只需先关闭,然后再打开。就像这样,首先重新连接闭合点,然后清除隔离点并切断电源线
然后,您可以使用相应的MatLab函数计算边界框。根据您的第二张图像,闭合过程可能会移除玩具的大部分(因为玩具身体的边界很薄),因此(如果我们可以假设玩具和绳索的位置始终垂直),您应该首先使用凸面外壳,然后在“图像的每一行”分别寻找较厚的物体(基于玩具各部分的宽度远大于绳索或噪声点的事实)。在每一行中,每一条长度超过阈值的水平线,保留该线,否则将其删除。这样,您将只重建玩具的凸面外壳,现在您可以轻松地在其上拟合矩形。根据第二张图像,关闭过程可能会删除玩具的大部分(因为玩具身体的边界很薄),所以(如果我们可以假设玩具和绳索的位置总是垂直的),你应该首先使用凸面外壳,然后在“图像的每一行”中分别寻找厚的物体(基于玩具在所有部分的宽度都远远大于绳索或噪声点的事实)。在每一行中,每一条长度超过阈值的水平线,保留该线,否则将其删除。通过这种方式,您可以重建玩具的凸面外壳,现在您可以轻松地在其上拟合矩形。一旦关闭/打开操作完成,可能会留下一些不需要的斑点。您可以“过滤”“按它们排列轮廓属性(例如:如果某个水滴的周长或曲面不够高,则可以忽略该水滴)。一旦关闭/打开操作完成,可能会留下一些不需要的水滴。您可以按它们的轮廓属性“过滤”它们(例如:如果某个水滴的周长或曲面不够高,则可以忽略该水滴)