类 BackgroundSubtractorMOG2
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.video.BackgroundSubtractor
-
- org.opencv.video.BackgroundSubtractorMOG2
-
public class BackgroundSubtractorMOG2 extends BackgroundSubtractor
基于高斯混合模型的背景/前景分割算法。该类实现了在CITE: Zivkovic2004和CITE: Zivkovic2006中描述的高斯混合模型背景减除。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protectedBackgroundSubtractorMOG2(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static BackgroundSubtractorMOG2__fromPtr__(long addr)voidapply(Mat image, Mat fgmask)计算前景掩码。voidapply(Mat image, Mat fgmask, double learningRate)计算前景掩码。protected voidfinalize()doublegetBackgroundRatio()返回算法的“背景比率”参数。如果前景像素保持近似 backgroundRatio\*history 帧的半恒定值,则将其视为背景并将其添加到模型中作为新组件的中心。doublegetComplexityReductionThreshold()返回复杂度降低阈值。此参数定义了需要接受的样本数量才能证明组件存在。booleangetDetectShadows()返回阴影检测标志。如果为真,则算法检测阴影并对其进行标记。intgetHistory()返回影响背景模型的最后帧数。intgetNMixtures()返回背景模型中高斯分量的数量。doublegetShadowThreshold()返回阴影阈值。如果像素是背景的较暗版本,则检测到阴影。intgetShadowValue()返回阴影值。阴影值是在前景掩码中标记阴影时使用的值。doublegetVarInit()返回每个高斯分量的初始方差。doublegetVarMax()doublegetVarMin()doublegetVarThreshold()返回像素模型匹配的方差阈值。决定样本是否被背景模型很好地描述的主要平方马氏距离阈值。doublegetVarThresholdGen()返回用于生成新混合分量的像素模型匹配的方差阈值。帮助决定样本何时接近现有组件的平方马氏距离阈值(对应于论文中的Tg)。voidsetBackgroundRatio(double ratio)设置算法的“背景比率”参数。voidsetComplexityReductionThreshold(double ct)设置复杂度降低阈值。voidsetDetectShadows(boolean detectShadows)启用或禁用阴影检测。voidsetHistory(int history)设置影响背景模型的最后帧数。voidsetNMixtures(int nmixtures)设置背景模型中高斯分量的数量。voidsetShadowThreshold(double threshold)设置阴影阈值。voidsetShadowValue(int value)设置阴影值。voidsetVarInit(double varInit)设置每个高斯分量的初始方差。voidsetVarMax(double varMax)voidsetVarMin(double varMin)voidsetVarThreshold(double varThreshold)设置像素模型匹配的方差阈值。voidsetVarThresholdGen(double varThresholdGen)设置用于生成新混合分量的像素模型匹配的方差阈值。-
从类 org.opencv.video.BackgroundSubtractor继承的方法
getBackgroundImage
-
从类 org.opencv.core.Algorithm继承的方法
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
方法详情
-
__fromPtr__
public static BackgroundSubtractorMOG2 __fromPtr__(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 表示背景模型从最后一帧完全重新初始化。
-
finalize
protected void finalize() throws java.lang.Throwable- 重写
- 类
BackgroundSubtractor中的finalize - 抛出
java.lang.Throwable
-
-