【问题标题】:background removal using emgucv使用 emgucv 去除背景
【发布时间】:2018-07-06 11:20:15
【问题描述】:

如何使用 emgucv 从实时视频源中移除背景。我需要像video 这样的东西。我唯一想要的是一个移动的物体或一个人。我尝试了运动检测,但没有达到性能水平。

【问题讨论】:

    标签: c# emgucv


    【解决方案1】:

    只要背景和光线条件稳定,您就可以做到这一点。首先获取背景图像。然后获取背景图像和视频帧之间的差异。最后,屏蔽零值像素。换句话说:

    (bg: 背景图片, cf: 当前帧, ri: 结果图片)

    1. ri = bg - cf
    2. 阈值:将零值像素设为黑色,其他像素设为白色。其他像素属于移动物体(视频中的男人)
    3. 找到白色斑点
    4. 掩盖 cf 上的那些白色斑点
    5. 在您想要的任何其他背景上过去那些蒙版

    对每一帧视频执行这些步骤

    【讨论】:

    • @LingboTang 你的意思是“什么是门槛”或“你说的门槛是什么”?如果首先,字典可以提供帮助;否则,我已经解释过了:)
    • 其实我是想问你如何在代码中找到白色斑点,emguCV 中的具体函数是什么?
    • @LingboTang 对于 EmguCV 3.1.0+,您可以使用 Emgu.CV.Cvb.CvBlobDetector 类。首先创建这个类的一个对象,然后使用它的“检测”方法。这将检测所有单独的白色像素堆栈并将它们全部标记。您还可以获取它们的面积、边界框、轮廓、质心等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    相关资源
    最近更新 更多