Aforge Blob检测

时间:2012-05-14 06:28:20

标签: c# blob aforge

如何从视频中检测非移动Blob?

让我们考虑一下我有一个视频和一个初始背景帧位图。是否可以检测到没有移动的斑点/物体?并在该对象周围绘制一个矩形?

2 个答案:

答案 0 :(得分:2)

这让我想起了一种检测地铁上被遗忘物体的算法。如果我没有错,你想检测那些没有移动的物体并且不在初始背景上吗?您可以应用此方法:

使用这样的初始图像(找不到真正空的地铁图像):

enter image description here

带有添加的静态物体(废物罐),地铁移动和等待的人的图像可能会移动一点:

enter image description here

在图片> ThresholdDifference(http://www.aforgenet.com/framework/docs/html/322123cf-39df-0ae8-6434-29cceb6a54e1.htm)之后,我们会得到类似的内容:

enter image description here

请注意废物如何与其他不存在的物体一起出现。如果你多次应用这个类似的过程,那就让我们说每10秒然后一个图像>相交(http://www.aforgenet.com/framework/docs/html/7244211d-e882-09b1-965d-f820375af8be.htm),你会在几分钟之后用这样的东西结束:

enter image description here

您可以使用图像>连接组件标签(http://www.aforgenet.com/framework/docs/html/240525ea-c114-8b0a-f294-508aae3e95eb.htm)轻松获取此对象的坐标

这种方法的缺点:

  • 需要一些时间(如果每隔10秒拍摄一次快照,几分钟拍摄更频繁的快照,则需要几分钟)来检测物体。
  • 需要更多时间来检测颜色与背景相似的物体,你可以很容易地注意到罐子上部的这个缺点,它也是白色的,就像墙壁一样。

答案 1 :(得分:0)

这是我心目中的解决方案,我不确定是否正常工作:

  1. 运行任何预先要求的过滤器和算法以准备进行blob检测。
  2. 运行blob检测算法并将所有blob保存在数组中。
  3. 找到每个blob的中心和区域大小。
  4. 将当前帧blob的数据与之前的blob(中心和大小)进行比较
  5. 如果变化在可接受的范围内,则它们是无动于衷的blob。