OpenCV: cv::BackgroundSubtractorMOG2 Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Member Functions | List of all members
cv::BackgroundSubtractorMOG2 Class Referenceabstract
Video Analysis » Motion Analysis

Gaussian Mixture-based Background/Foreground Segmentation Algorithm. More...

`#include "background_segm.hpp"`

Inheritance diagram for cv::BackgroundSubtractorMOG2:

## Public Member Functions
virtual void | apply (InputArray image, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE=0
| Computes a foreground mask. More...
virtual double | getBackgroundRatio () const =0
| Returns the "background ratio" parameter of the algorithm. More...
virtual double | getComplexityReductionThreshold () const =0
| Returns the complexity reduction threshold. More...
virtual bool | getDetectShadows () const =0
| Returns the shadow detection flag. More...
virtual int | getHistory () const =0
| Returns the number of last frames that affect the background model. More...
virtual int | getNMixtures () const =0
| Returns the number of gaussian components in the background model. More...
virtual double | getShadowThreshold () const =0
| Returns the shadow threshold. More...
virtual int | getShadowValue () const =0
| Returns the shadow value. More...
virtual double | getVarInit () const =0
| Returns the initial variance of each gaussian component. More...
virtual double | getVarMax () const =0
virtual double | getVarMin () const =0
virtual double | getVarThreshold () const =0
| Returns the variance threshold for the pixel-model match. More...
virtual double | getVarThresholdGen () const =0
| Returns the variance threshold for the pixel-model match used for new mixture component generation. More...
virtual void | setBackgroundRatio (double ratio)=0
| Sets the "background ratio" parameter of the algorithm. More...
virtual void | setComplexityReductionThreshold (double ct)=0
| Sets the complexity reduction threshold. More...
virtual void | setDetectShadows (bool detectShadows)=0
| Enables or disables shadow detection. More...
virtual void | setHistory (int history)=0
| Sets the number of last frames that affect the background model. More...
virtual void | setNMixtures (int nmixtures)=0
| Sets the number of gaussian components in the background model. More...
virtual void | setShadowThreshold (double threshold)=0
| Sets the shadow threshold. More...
virtual void | setShadowValue (int value)=0
| Sets the shadow value. More...
virtual void | setVarInit (double varInit)=0
| Sets the initial variance of each gaussian component. More...
virtual void | setVarMax (double varMax)=0
virtual void | setVarMin (double varMin)=0
virtual void | setVarThreshold (double varThreshold)=0
| Sets the variance threshold for the pixel-model match. More...
virtual void | setVarThresholdGen (double varThresholdGen)=0
| Sets the variance threshold for the pixel-model match used for new mixture component generation. More...
Public Member Functions inherited from cv::BackgroundSubtractor
virtual void | getBackgroundImage (OutputArray backgroundImage) const =0
| Computes a background image. More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Additional Inherited Members
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

Gaussian Mixture-based Background/Foreground Segmentation Algorithm.

The class implements the Gaussian mixture model background subtraction described in [Zivkovic2004] and [Zivkovic2006] .

## Member Function Documentation

## ◆ apply()

virtual void cv::BackgroundSubtractorMOG2::apply | ( | InputArray | image,
|  | OutputArray | fgmask,
|  | double | learningRate = `-1`
| ) |  |
| pure virtual

Computes a foreground mask.

Parameters

  image | Next video frame. Floating point frame will be used without scaling and should be in range \([0,255]\).
  fgmask | The output foreground mask as an 8-bit binary image.
  learningRate | The value between 0 and 1 that indicates how fast the background model is learnt. Negative parameter value makes the algorithm to use some automatically chosen learning rate. 0 means that the background model is not updated at all, 1 means that the background model is completely reinitialized from the last frame.

Implements cv::BackgroundSubtractor.

Examples:
  segment_objects.cpp.

## ◆ getBackgroundRatio()

virtual double cv::BackgroundSubtractorMOG2::getBackgroundRatio | ( |  | ) | const
| pure virtual

Returns the "background ratio" parameter of the algorithm.

If a foreground pixel keeps semi-constant value for about backgroundRatio*history frames, it's considered background and added to the model as a center of a new component. It corresponds to TB parameter in the paper.

## ◆ getComplexityReductionThreshold()

virtual double cv::BackgroundSubtractorMOG2::getComplexityReductionThreshold | ( |  | ) | const
| pure virtual

Returns the complexity reduction threshold.

This parameter defines the number of samples needed to accept to prove the component exists. CT=0.05 is a default value for all the samples. By setting CT=0 you get an algorithm very similar to the standard Stauffer&Grimson algorithm.

## ◆ getDetectShadows()

virtual bool cv::BackgroundSubtractorMOG2::getDetectShadows | ( |  | ) | const
| pure virtual

Returns the shadow detection flag.

If true, the algorithm detects shadows and marks them. See createBackgroundSubtractorMOG2 for details.

## ◆ getHistory()

virtual int cv::BackgroundSubtractorMOG2::getHistory | ( |  | ) | const
| pure virtual

Returns the number of last frames that affect the background model.

## ◆ getNMixtures()

virtual int cv::BackgroundSubtractorMOG2::getNMixtures | ( |  | ) | const
| pure virtual

Returns the number of gaussian components in the background model.

## ◆ getShadowThreshold()

virtual double cv::BackgroundSubtractorMOG2::getShadowThreshold | ( |  | ) | const
| pure virtual

Returns the shadow threshold.

A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel is more than twice darker then it is not shadow. See Prati, Mikic, Trivedi and Cucchiara, Detecting Moving Shadows...*, IEEE PAMI,2003.

## ◆ getShadowValue()

virtual int cv::BackgroundSubtractorMOG2::getShadowValue | ( |  | ) | const
| pure virtual

Returns the shadow value.

Shadow value is the value used to mark shadows in the foreground mask. Default value is 127. Value 0 in the mask always means background, 255 means foreground.

## ◆ getVarInit()

virtual double cv::BackgroundSubtractorMOG2::getVarInit | ( |  | ) | const
| pure virtual

Returns the initial variance of each gaussian component.

## ◆ getVarMax()

virtual double cv::BackgroundSubtractorMOG2::getVarMax | ( |  | ) | const
| pure virtual

## ◆ getVarMin()

virtual double cv::BackgroundSubtractorMOG2::getVarMin | ( |  | ) | const
| pure virtual

## ◆ getVarThreshold()

virtual double cv::BackgroundSubtractorMOG2::getVarThreshold | ( |  | ) | const
| pure virtual

Returns the variance threshold for the pixel-model match.

The main threshold on the squared Mahalanobis distance to decide if the sample is well described by the background model or not. Related to Cthr from the paper.

## ◆ getVarThresholdGen()

virtual double cv::BackgroundSubtractorMOG2::getVarThresholdGen | ( |  | ) | const
| pure virtual

Returns the variance threshold for the pixel-model match used for new mixture component generation.

Threshold for the squared Mahalanobis distance that helps decide when a sample is close to the existing components (corresponds to Tg in the paper). If a pixel is not close to any component, it is considered foreground or added as a new component. 3 sigma => Tg=3*3=9 is default. A smaller Tg value generates more components. A higher Tg value may result in a small number of components but they can grow too large.

## ◆ setBackgroundRatio()

virtual void cv::BackgroundSubtractorMOG2::setBackgroundRatio | ( | double | ratio | ) |
| pure virtual

Sets the "background ratio" parameter of the algorithm.

## ◆ setComplexityReductionThreshold()

virtual void cv::BackgroundSubtractorMOG2::setComplexityReductionThreshold | ( | double | ct | ) |
| pure virtual

Sets the complexity reduction threshold.

## ◆ setDetectShadows()

virtual void cv::BackgroundSubtractorMOG2::setDetectShadows | ( | bool | detectShadows | ) |
| pure virtual

Enables or disables shadow detection.

## ◆ setHistory()

virtual void cv::BackgroundSubtractorMOG2::setHistory | ( | int | history | ) |
| pure virtual

Sets the number of last frames that affect the background model.

## ◆ setNMixtures()

virtual void cv::BackgroundSubtractorMOG2::setNMixtures | ( | int | nmixtures | ) |
| pure virtual

Sets the number of gaussian components in the background model.

The model needs to be reinitalized to reserve memory.

## ◆ setShadowThreshold()

virtual void cv::BackgroundSubtractorMOG2::setShadowThreshold | ( | double | threshold | ) |
| pure virtual

Sets the shadow threshold.

## ◆ setShadowValue()

virtual void cv::BackgroundSubtractorMOG2::setShadowValue | ( | int | value | ) |
| pure virtual

Sets the shadow value.

## ◆ setVarInit()

virtual void cv::BackgroundSubtractorMOG2::setVarInit | ( | double | varInit | ) |
| pure virtual

Sets the initial variance of each gaussian component.

## ◆ setVarMax()

virtual void cv::BackgroundSubtractorMOG2::setVarMax | ( | double | varMax | ) |
| pure virtual

## ◆ setVarMin()

virtual void cv::BackgroundSubtractorMOG2::setVarMin | ( | double | varMin | ) |
| pure virtual

## ◆ setVarThreshold()

virtual void cv::BackgroundSubtractorMOG2::setVarThreshold | ( | double | varThreshold | ) |
| pure virtual

Sets the variance threshold for the pixel-model match.

Examples:
  segment_objects.cpp.

## ◆ setVarThresholdGen()

virtual void cv::BackgroundSubtractorMOG2::setVarThresholdGen | ( | double | varThresholdGen | ) |
| pure virtual

Sets the variance threshold for the pixel-model match used for new mixture component generation.

The documentation for this class was generated from the following file:

- video/include/opencv2/video/background_segm.hpp