类 BackgroundSubtractorMOG2


  • public class BackgroundSubtractorMOG2
    extends BackgroundSubtractor
    基于高斯混合模型的背景/前景分割算法。该类实现了在CITE: Zivkovic2004和CITE: Zivkovic2006中描述的高斯混合模型背景减除。
    • 构造函数详情

      • BackgroundSubtractorMOG2

        protected BackgroundSubtractorMOG2​(long addr)
    • 方法详情

      • getHistory

        public int getHistory()
        返回影响背景模型的最后帧数。
        返回
        自动生成
      • setHistory

        public void setHistory​(int history)
        设置影响背景模型的最后帧数。
        参数
        history - 自动生成
      • getNMixtures

        public int getNMixtures()
        返回背景模型中高斯分量的数量。
        返回
        自动生成
      • setNMixtures

        public void setNMixtures​(int nmixtures)
        设置背景模型中高斯分量的数量。需要重新初始化模型以预留内存。
        参数
        nmixtures - 自动生成
      • getBackgroundRatio

        public double getBackgroundRatio()
        返回算法的“背景比率”参数。如果前景像素保持近似 backgroundRatio\*history 帧的半恒定值,则将其视为背景并将其添加到模型中作为新组件的中心。它对应于论文中的TB参数。
        返回
        自动生成
      • setBackgroundRatio

        public void setBackgroundRatio​(double ratio)
        设置算法的“背景比率”参数。
        参数
        ratio - 自动生成
      • getVarThreshold

        public double getVarThreshold()
        返回像素模型匹配的方差阈值。决定样本是否被背景模型很好地描述的主要平方马氏距离阈值。与论文中的Cthr相关。
        返回
        自动生成
      • setVarThreshold

        public void setVarThreshold​(double varThreshold)
        设置像素模型匹配的方差阈值。
        参数
        varThreshold - 自动生成
      • getVarThresholdGen

        public double getVarThresholdGen()
        返回用于生成新混合分量的像素模型匹配的方差阈值。帮助决定样本何时接近现有组件的平方马氏距离阈值(对应于论文中的Tg)。如果像素不接近任何组件,则将其视为前景或添加为新组件。3 sigma => Tg=3\*3=9 是默认值。较小的Tg值会生成更多组件。较高的Tg值可能会导致组件数量较少,但它们可能会变得太大。
        返回
        自动生成
      • setVarThresholdGen

        public void setVarThresholdGen​(double varThresholdGen)
        设置用于生成新混合分量的像素模型匹配的方差阈值。
        参数
        varThresholdGen - 自动生成
      • getVarInit

        public double getVarInit()
        返回每个高斯分量的初始方差。
        返回
        自动生成
      • setVarInit

        public void setVarInit​(double varInit)
        设置每个高斯分量的初始方差。
        参数
        varInit - 自动生成
      • getVarMin

        public double getVarMin()
      • setVarMin

        public void setVarMin​(double varMin)
      • getVarMax

        public double getVarMax()
      • setVarMax

        public void setVarMax​(double varMax)
      • getComplexityReductionThreshold

        public double getComplexityReductionThreshold()
        返回复杂度降低阈值。此参数定义了需要接受的样本数量才能证明组件存在。CT=0.05是所有样本的默认值。通过设置CT=0,您可以获得与标准Stauffer&Grimson算法非常相似的算法。
        返回
        自动生成
      • setComplexityReductionThreshold

        public void setComplexityReductionThreshold​(double ct)
        设置复杂度降低阈值。
        参数
        ct - 自动生成
      • getDetectShadows

        public boolean getDetectShadows()
        返回阴影检测标志。如果为真,则算法检测阴影并对其进行标记。详情请参阅 createBackgroundSubtractorMOG2。
        返回
        自动生成
      • setDetectShadows

        public void setDetectShadows​(boolean detectShadows)
        启用或禁用阴影检测。
        参数
        detectShadows - 自动生成
      • getShadowValue

        public int getShadowValue()
        返回阴影值。阴影值是在前景掩码中用于标记阴影的值。默认值为 127。掩码中的值 0 始终表示背景,255 表示前景。
        返回
        自动生成
      • setShadowValue

        public void setShadowValue​(int value)
        设置阴影值。
        参数
        value - 自动生成
      • getShadowThreshold

        public double getShadowThreshold()
        返回阴影阈值。如果像素是背景的较暗版本,则检测到阴影。阴影阈值(论文中的 Tau)是定义阴影可以暗多少的阈值。Tau=0.5 表示如果像素的亮度小于背景的一半,则它不是阴影。详情请参阅 Prati, Mikic, Trivedi 和 Cucchiara,《检测移动阴影...》,IEEE PAMI,2003。
        返回
        自动生成
      • setShadowThreshold

        public void setShadowThreshold​(double threshold)
        设置阴影阈值。
        参数
        threshold - 自动生成
      • apply

        public void apply​(Mat image,
                          Mat fgmask,
                          double learningRate)
        计算前景掩码。
        重写
        BackgroundSubtractor中的apply
        参数
        image - 下一个视频帧。浮点型帧将直接使用,无需缩放,且应在范围 \[0,255] 内。
        fgmask - 输出的前景掩码,为 8 位二值图像。
        learningRate - 值介于 0 和 1 之间,指示学习背景模型的速度。负参数值使算法使用某些自动选择的学习率。0 表示背景模型根本不更新,1 表示背景模型从最后一帧完全重新初始化。
      • apply

        public void apply​(Mat image,
                          Mat fgmask)
        计算前景掩码。
        重写
        BackgroundSubtractor中的apply
        参数
        image - 下一个视频帧。浮点型帧将直接使用,无需缩放,且应在范围 \[0,255] 内。
        fgmask - 输出的前景掩码,为 8 位二值图像。学习速度。负参数值使算法使用某些自动选择的学习率。0 表示背景模型根本不更新,1 表示背景模型从最后一帧完全重新初始化。