| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
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>`

Collaboration diagram for cv::BackgroundSubtractorMOG2:

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

## 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.
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String.
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node.
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 [326] and [325] .

## Member Function Documentation

## ◆ apply()

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

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

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.

## ◆ getBackgroundRatio()

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

Python:
| cv.BackgroundSubtractorMOG2.getBackgroundRatio( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getComplexityReductionThreshold( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getDetectShadows( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getHistory( |  | ) -> | retval

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

## ◆ getNMixtures()

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

Python:
| cv.BackgroundSubtractorMOG2.getNMixtures( |  | ) -> | retval

Returns the number of gaussian components in the background model.

## ◆ getShadowThreshold()

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

Python:
| cv.BackgroundSubtractorMOG2.getShadowThreshold( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getShadowValue( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getVarInit( |  | ) -> | retval

Returns the initial variance of each gaussian component.

## ◆ getVarMax()

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

Python:
| cv.BackgroundSubtractorMOG2.getVarMax( |  | ) -> | retval

## ◆ getVarMin()

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

Python:
| cv.BackgroundSubtractorMOG2.getVarMin( |  | ) -> | retval

## ◆ getVarThreshold()

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

Python:
| cv.BackgroundSubtractorMOG2.getVarThreshold( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.getVarThresholdGen( |  | ) -> | retval

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:
| cv.BackgroundSubtractorMOG2.setBackgroundRatio( | ratio | ) -> | None

Sets the "background ratio" parameter of the algorithm.

## ◆ setComplexityReductionThreshold()

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

Python:
| cv.BackgroundSubtractorMOG2.setComplexityReductionThreshold( | ct | ) -> | None

Sets the complexity reduction threshold.

## ◆ setDetectShadows()

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

Python:
| cv.BackgroundSubtractorMOG2.setDetectShadows( | detectShadows | ) -> | None

Enables or disables shadow detection.

## ◆ setHistory()

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

Python:
| cv.BackgroundSubtractorMOG2.setHistory( | history | ) -> | None

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

## ◆ setNMixtures()

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

Python:
| cv.BackgroundSubtractorMOG2.setNMixtures( | nmixtures | ) -> | None

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:
| cv.BackgroundSubtractorMOG2.setShadowThreshold( | threshold | ) -> | None

Sets the shadow threshold.

## ◆ setShadowValue()

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

Python:
| cv.BackgroundSubtractorMOG2.setShadowValue( | value | ) -> | None

Sets the shadow value.

## ◆ setVarInit()

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

Python:
| cv.BackgroundSubtractorMOG2.setVarInit( | varInit | ) -> | None

Sets the initial variance of each gaussian component.

## ◆ setVarMax()

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

Python:
| cv.BackgroundSubtractorMOG2.setVarMax( | varMax | ) -> | None

## ◆ setVarMin()

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

Python:
| cv.BackgroundSubtractorMOG2.setVarMin( | varMin | ) -> | None

## ◆ setVarThreshold()

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

Python:
| cv.BackgroundSubtractorMOG2.setVarThreshold( | varThreshold | ) -> | None

Sets the variance threshold for the pixel-model match.

## ◆ setVarThresholdGen()

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

Python:
| cv.BackgroundSubtractorMOG2.setVarThresholdGen( | varThresholdGen | ) -> | None

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