我正在尝试从视频中去除背景,并获得二进制图像(或8位),其中移动的对象值为1,静态背景为0。类似于这样: 起初我尝试使用从运行平均值 accumulateWeighted() 和当前帧获取差异的absDiff(),但结果并非我所期望(只有边缘为1,移动对象内部为0)。因此,我选择了createBackgroundSubtractorMOG2和createBackgroundSubtractorMOG,但这也不好(同样的问题)。有办法获取整个移动对象吗?
高斯混合模型并不能解决所有问题。普遍存在的问题是对光照条件的敏感性,例如将阴影附加到提取的前景对象上。如果图像场景(背景)大致相同,则可以通过一些图像处理来优化结果。 如果背景与附加的图像类似,请尝试在HSI空间中构建颜色直方图,创建提取的前景对象图像(不是掩模,实际有色图像),然后删除颜色与地面相似的像素(这种技术是从皮肤检测方法中得知的)。这样,您可以消除附着在人/物体上的一些阴影。 此外,如果实时处理不是您的应用程序关键所在,您可以使用更复杂的背景/前景检测方法,例如 SubSENSE。
MOG2
的掩码来裁剪 roi,它起作用了!谢谢 - user4312643