我在OpenCV中使用BackgroundSubtractorMOG跟踪对象。当它们出现时,它工作正常,但背景 swift 适应,因此我无法跟踪静态对象。我怎样才能使背景适应变慢(我不希望它完全静态,而是变慢)?
使用构造函数设置学习率不会改变:
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 )
这比上一个要快得多,它也可以消除对阴影的检测。