BackgroundSubtractorMOG

BackgroundSubtractorMOG

我在OpenCV中使用BackgroundSubtractorMOG跟踪对象。当它们出现时,它工作正常,但背景 swift 适应,因此我无法跟踪静态对象。我怎样才能使背景适应变慢(我不希望它完全静态,而是变慢)?

使用构造函数设置学习率不会改变:

BackgroundSubtractorMOG pBSMOG = BackgroundSubtractorMOG(???);

我该如何解决?谢谢!

最佳答案

BackgroundSubtractorMOG pBSMOG = BackgroundSubtractorMOG(int history=200, int nmixtures=5, double backgroundRatio=0.7, double noiseSigma=0);

在哪里,
  • 历史记录 –历史记录的长度。
  • nmixtures –高斯混合数。
  • backgroundRatio –背景比率。
  • noise西格玛 –噪声强度(亮度或每个颜色 channel 的标准偏差)。 0表示一些自动值。

  • 增加history值将减慢自适应速率。

    OpenCV中还有另一个功能:
    Ptr <BackgroundSubtractorMOG2> createBackgroundSubtractorMOG2(int
    history=500, double varThreshold=16, bool detectShadows=true )
    

    这比上一个要快得多,它也可以消除对阴影的检测。

    07-27 13:37