我试图从视频中删除背景并获取二进制图像(或8位),其中移动的对象的值为1,静态背景为0.
类似的东西:
起初我尝试了从差异absDiff()
获得差异 accumulateWeighted()
和当前帧,但结果不是我的意思预期(只有边缘为1,移动物体内部为0)。
所以我去了createBackgroundSubtractorMOG2
和createBackgroundSubtractorMOG
,但这也不好(同样的问题)。
有没有办法获得整个移动物体?
答案 0 :(得分:0)
高斯混合法不会解决你所有的问题。常见问题是对光线条件的敏感性,例如将阴影附加到提取的前景对象。如果图像场景(背景)大致相同,您可以通过一些图像处理来优化结果。
如果背景与附加图像类似,尝试在HSI空间中构建颜色直方图,创建提取的前景对象(不是蒙版,实际彩色图像)的图像,并删除颜色类似于地板的像素(从皮肤检测方法)。通过这种方式,您可以删除附加到人/物体的一些阴影。
此外,如果实时处理在您的应用程序中并不重要,您可以使用更复杂的背景/前景检测,如SubSENSE。