【问题标题】:Aforge Blob DetectionAforge 斑点检测
【发布时间】:2012-05-21 15:27:49
【问题描述】:

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

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

【问题讨论】:

    标签: c# blob aforge


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      注意废物如何与其他不存在的物体一起出现。如果你多次应用这个类似的过程,假设每 10 秒一次,然后一个 Image>Intersect (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 秒拍摄一次快照则需要几分钟,更频繁的快照需要几秒钟)来检测对象。
      • 检测与背景颜色相似的物体将花费更多时间,您可以很容易地注意到罐子上部的这个缺点,它也是白色的,就像墙壁一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-13
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 2012-04-05
        • 1970-01-01
        • 2015-05-11
        相关资源
        最近更新 更多