我在 OpenCV 中使用 BackgroundSubtractorMOG 来跟踪对象。当它们出现时,它可以正常工作,但背景会快速适应,因此我无法跟踪静态对象。如何使背景适应变慢(我不希望它完全静态,只是更慢)?
使用构造函数设置学习率不会改变:
BackgroundSubtractorMOG pBSMOG = BackgroundSubtractorMOG(???);
我该如何解决这个问题?谢谢!
我在 OpenCV 中使用 BackgroundSubtractorMOG 来跟踪对象。当它们出现时,它可以正常工作,但背景会快速适应,因此我无法跟踪静态对象。如何使背景适应变慢(我不希望它完全静态,只是更慢)?
使用构造函数设置学习率不会改变:
BackgroundSubtractorMOG pBSMOG = BackgroundSubtractorMOG(???);
我该如何解决这个问题?谢谢!
BackgroundSubtractorMOG pBSMOG = BackgroundSubtractorMOG(int history=200, int nmixtures=5, double backgroundRatio=0.7, double noiseSigma=0);
在哪里,
增加该history
值会减慢适应率。
OpenCV 中还有另一个可用的功能:
Ptr <BackgroundSubtractorMOG2> createBackgroundSubtractorMOG2(int
history=500, double varThreshold=16, bool detectShadows=true )
这比前一个快得多,它也可以消除检测阴影。