类 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()
        返回阴影检测标志。如果为 true,则算法检测阴影并标记它们。有关详细信息,请参见 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, Detecting Moving Shadows...*, IEEE PAMI,2003。
        返回
        自动生成
      • setShadowThreshold

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

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

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

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类中 BackgroundSubtractor
        抛出
        java.lang.Throwable