类 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中描述的高斯混合模型背景减除。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
BackgroundSubtractorMOG2(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static BackgroundSubtractorMOG2
__fromPtr__(long addr)
void
apply(Mat image, Mat fgmask)
计算前景掩码。void
apply(Mat image, Mat fgmask, double learningRate)
计算前景掩码。protected void
finalize()
double
getBackgroundRatio()
返回算法的“背景比率”参数。如果前景像素保持近似 backgroundRatio\*history 帧的半恒定值,则将其视为背景并将其添加到模型中作为新组件的中心。double
getComplexityReductionThreshold()
返回复杂度降低阈值。此参数定义了需要接受的样本数量才能证明组件存在。boolean
getDetectShadows()
返回阴影检测标志。如果为真,则算法检测阴影并对其进行标记。int
getHistory()
返回影响背景模型的最后帧数。int
getNMixtures()
返回背景模型中高斯分量的数量。double
getShadowThreshold()
返回阴影阈值。如果像素是背景的较暗版本,则检测到阴影。int
getShadowValue()
返回阴影值。阴影值是在前景掩码中标记阴影时使用的值。double
getVarInit()
返回每个高斯分量的初始方差。double
getVarMax()
double
getVarMin()
double
getVarThreshold()
返回像素模型匹配的方差阈值。决定样本是否被背景模型很好地描述的主要平方马氏距离阈值。double
getVarThresholdGen()
返回用于生成新混合分量的像素模型匹配的方差阈值。帮助决定样本何时接近现有组件的平方马氏距离阈值(对应于论文中的Tg)。void
setBackgroundRatio(double ratio)
设置算法的“背景比率”参数。void
setComplexityReductionThreshold(double ct)
设置复杂度降低阈值。void
setDetectShadows(boolean detectShadows)
启用或禁用阴影检测。void
setHistory(int history)
设置影响背景模型的最后帧数。void
setNMixtures(int nmixtures)
设置背景模型中高斯分量的数量。void
setShadowThreshold(double threshold)
设置阴影阈值。void
setShadowValue(int value)
设置阴影值。void
setVarInit(double varInit)
设置每个高斯分量的初始方差。void
setVarMax(double varMax)
void
setVarMin(double varMin)
void
setVarThreshold(double varThreshold)
设置像素模型匹配的方差阈值。void
setVarThresholdGen(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
-
-