我正在使用OpenCV库已集成到项目中的CodeBook方法。直到现在我已经设法使它在我的网络摄像头上工作,但似乎有一些问题。 由于整个区域(有时是整个图像)被标记为前景,因此相机的亮度自动调整会影响整个最终结果。
我真的想知道我是否可以访问算法生成的背景模型,以便进行一些基本的阴影检测,从而消除亮度变化。 作为最终结果,我希望将前景图像分类为: a)异物 b)仅改变亮度的区域。
PS:我正在使用OpenCV 2.1以及Dev C ++ 4.9.9.2
答案 0 :(得分:2)
BackgroundSubtractorMOG2以及其他每个backgrounsubstractor都有一个返回背景图像的function。你可以更好地关闭相机的白平衡并自动对焦。
答案 1 :(得分:0)
据我所知,没有背景模型无法移除阴影。为此,您可能需要使用某些方法,如需要机器学习的场景检测。或者,您可以尝试使用超像素匹配来移除阴影的方法。
BTW,CodeBook模型是一种古老而又缓慢的方法,我所知道的最好的背景模型叫做ViBe,它已获得专利,但如果你将它用于学术目的,你可以从发明者那里获得SDK,这里是我的实施视频。当它应用于流量检测时,这是另一个视频 https://www.youtube.com/watch?v=uzY76q0mrh4如果您阅读他们发表的论文,您可以实施自己的版本。希望这有帮助!