使用 EmguCV 去除阴影的背景减法

Background Subtraction with Shadow Removal with EmguCV

我正在寻找一种使用 C# (EmguCV) 从视频序列中提取前景(无阴影)的方法。我尝试了几种方法,例如 KNN、MOG 和 MOG2。最后,MOG2 是最好的,非常接近我想要的结果。然而,它仍然未能消除阴影。

据我所知,有几个属性可用于使用 MOG2 执行更好的阴影去除,例如:fTau,但这些属性仅在 OpenCV(不是 EmguCV)中可用。那么有没有人用C#实现过这种功能呢?

目前,我可以通过将阴影转换为黑色像素来消除前景中的阴影。这可以使用指定阴影强度值 (150) 的 ThresholdToZero 方法来完成。

去除阴影之前

去除阴影后

注意: 我使用 MOG2 背景减法器并启用阴影检测功能。