| OpenCV 3.4.8 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 <opencv2/video/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 [245] and [244] .

## Member Function Documentation

## § apply()

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

Python:
| fgmask | = | cv.BackgroundSubtractorMOG2.apply( | image[, fgmask[, learningRate]] | )

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:
  samples/cpp/segment_objects.cpp.

## § getBackgroundRatio()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getBackgroundRatio( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getComplexityReductionThreshold( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getDetectShadows( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getHistory( |  | )

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

## § getNMixtures()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getNMixtures( |  | )

Returns the number of gaussian components in the background model.

## § getShadowThreshold()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getShadowThreshold( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getShadowValue( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getVarInit( |  | )

Returns the initial variance of each gaussian component.

## § getVarMax()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getVarMax( |  | )

## § getVarMin()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getVarMin( |  | )

## § getVarThreshold()

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getVarThreshold( |  | )

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

Python:
| retval | = | cv.BackgroundSubtractorMOG2.getVarThresholdGen( |  | )

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setBackgroundRatio( | ratio | )

Sets the "background ratio" parameter of the algorithm.

## § setComplexityReductionThreshold()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setComplexityReductionThreshold( | ct | )

Sets the complexity reduction threshold.

## § setDetectShadows()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setDetectShadows( | detectShadows | )

Enables or disables shadow detection.

## § setHistory()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setHistory( | history | )

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

## § setNMixtures()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setNMixtures( | nmixtures | )

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setShadowThreshold( | threshold | )

Sets the shadow threshold.

## § setShadowValue()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setShadowValue( | value | )

Sets the shadow value.

## § setVarInit()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setVarInit( | varInit | )

Sets the initial variance of each gaussian component.

## § setVarMax()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setVarMax( | varMax | )

## § setVarMin()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setVarMin( | varMin | )

## § setVarThreshold()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setVarThreshold( | varThreshold | )

Sets the variance threshold for the pixel-model match.

Examples:
  samples/cpp/segment_objects.cpp.

## § setVarThresholdGen()

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

Python:
| None | = | cv.BackgroundSubtractorMOG2.setVarThresholdGen( | varThresholdGen | )

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:

- opencv2/video/background_segm.hpp