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