从图像中删除背景和噪音

5 python opencv image-processing motion-detection background-subtraction

我试图从视频中删除背景并获得二进制图像(或8位),其中移动的对象的值是1,静态背景是0.

这样的事情:

在此输入图像描述

起初我尝试了它与absDiff() 运行平均值 accumulateWeighted() 和当前帧的差异,但结果不是我预期的(只有边缘为1,移动对象内部为0).

所以我去了createBackgroundSubtractorMOG2,createBackgroundSubtractorMOG但这也不好(同样的问题).

有没有办法获得整个移动物体?

maj*_*.mk 0

混合高斯方法并不能解决您所有的问题。常见问题是对光照条件的敏感性,例如将阴影附加到提取的前景对象上。如果图像场景(背景)大致相同,您可以通过一些图像处理来优化结果。

如果背景与所附图像相似,请尝试在 HSI 空间中构建颜色直方图,创建提取的前景对象的图像(不是掩模,实际彩色图像)并删除颜色与地板相似的像素(从皮肤检测方法中已知的技术) )。这样你就可以去除一些附着在人/物体上的阴影。

此外,如果实时处理在您的应用程序中并不重要,您可以使用更复杂的背景/前景检测,例如SubSENSE