2

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

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

4

2 回答 2

2

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

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

在此处输入图像描述

还有一个添加了静态对象(垃圾桶)的图像,地铁在移动,一个人在等待,可能会移动一点:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

您可以使用 Image>Connected Component Labeling ( http://www.aforgenet.com/framework/docs/html/240525ea-c114-8b0a-f294-508aae3e95eb.htm )轻松获取此对象的坐标

这种方法的缺点:

  • 需要一些时间(如果您每 10 秒拍摄一次快照,则需要几分钟,更频繁的快照需要几秒钟)来检测对象。
  • 检测与背景颜色相似的物体将花费更多时间,您可以在罐子的上部很容易注意到这个缺点,它也是白色的,就像墙壁一样。
于 2013-11-05T04:10:23.893 回答
0

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

  1. 运行任何预先需要的过滤器和算法以准备进行斑点检测。
  2. 运行 blob 检测算法并将所有 blob 保存在一个数组中。
  3. 找到每个斑点的中心和区域大小。
  4. 将当前帧 blob 的数据与以前的 blob(它们的中心和大小)进行比较
  5. 如果更改在可接受的范围内,则它们是未移动的 blob。
于 2012-05-27T07:36:33.233 回答