类 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 中描述的高斯混合模型背景消减。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护BackgroundSubtractorMOG2(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 静态 BackgroundSubtractorMOG2__fromPtr__(long addr)voidapply(Mat image, Mat fgmask)计算前景掩码。voidapply(Mat image, Mat fgmask, double learningRate)计算前景掩码。protected voidfinalize()doublegetBackgroundRatio()返回算法的“背景比率”参数。如果一个前景像素保持半恒定值大约 backgroundRatio\*history 帧,它被认为是背景并作为新组件的中心添加到模型中。doublegetComplexityReductionThreshold()返回复杂度降低阈值。此参数定义接受证明该组件存在的所需样本数。booleangetDetectShadows()返回阴影检测标志。如果为 true,则算法检测阴影并标记它们。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()
返回阴影检测标志。如果为 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
-
-