Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: RZ_A2M_Mbed_samples
BackgroundSubtractorMOG2 Class Reference
[Motion Analysis]
Gaussian Mixture-based Background/Foreground Segmentation Algorithm. More...
#include <background_segm.hpp>
Inherits cv::BackgroundSubtractor.
Public Member Functions | |
| virtual CV_WRAP int | getHistory () const =0 |
| Returns the number of last frames that affect the background model. | |
| virtual CV_WRAP void | setHistory (int history)=0 |
| Sets the number of last frames that affect the background model. | |
| virtual CV_WRAP int | getNMixtures () const =0 |
| Returns the number of gaussian components in the background model. | |
| virtual CV_WRAP void | setNMixtures (int nmixtures)=0 |
| Sets the number of gaussian components in the background model. | |
| virtual CV_WRAP double | getBackgroundRatio () const =0 |
| Returns the "background ratio" parameter of the algorithm. | |
| virtual CV_WRAP void | setBackgroundRatio (double ratio)=0 |
| Sets the "background ratio" parameter of the algorithm. | |
| virtual CV_WRAP double | getVarThreshold () const =0 |
| Returns the variance threshold for the pixel-model match. | |
| virtual CV_WRAP void | setVarThreshold (double varThreshold)=0 |
| Sets the variance threshold for the pixel-model match. | |
| virtual CV_WRAP double | getVarThresholdGen () const =0 |
| Returns the variance threshold for the pixel-model match used for new mixture component generation. | |
| virtual CV_WRAP void | setVarThresholdGen (double varThresholdGen)=0 |
| Sets the variance threshold for the pixel-model match used for new mixture component generation. | |
| virtual CV_WRAP double | getVarInit () const =0 |
| Returns the initial variance of each gaussian component. | |
| virtual CV_WRAP void | setVarInit (double varInit)=0 |
| Sets the initial variance of each gaussian component. | |
| virtual CV_WRAP double | getComplexityReductionThreshold () const =0 |
| Returns the complexity reduction threshold. | |
| virtual CV_WRAP void | setComplexityReductionThreshold (double ct)=0 |
| Sets the complexity reduction threshold. | |
| virtual CV_WRAP bool | getDetectShadows () const =0 |
| Returns the shadow detection flag. | |
| virtual CV_WRAP void | setDetectShadows (bool detectShadows)=0 |
| Enables or disables shadow detection. | |
| virtual CV_WRAP int | getShadowValue () const =0 |
| Returns the shadow value. | |
| virtual CV_WRAP void | setShadowValue (int value)=0 |
| Sets the shadow value. | |
| virtual CV_WRAP double | getShadowThreshold () const =0 |
| Returns the shadow threshold. | |
| virtual CV_WRAP void | setShadowThreshold (double threshold)=0 |
| Sets the shadow threshold. | |
| virtual CV_WRAP void | apply (InputArray image, OutputArray fgmask, double learningRate=-1)=0 |
| Computes a foreground mask. | |
| virtual CV_WRAP void | getBackgroundImage (OutputArray backgroundImage) const =0 |
| Computes a background image. | |
| virtual CV_WRAP void | clear () |
| Clears the algorithm state. | |
| virtual void | write (FileStorage &fs) const |
| Stores algorithm parameters in a file storage. | |
| virtual void | read (const FileNode &fn) |
| Reads algorithm parameters from a file storage. | |
| virtual bool | empty () const |
| Returns true if the Algorithm is empty (e.g. | |
| virtual CV_WRAP void | save (const String &filename) const |
| Saves the algorithm to a file. | |
| virtual CV_WRAP String | getDefaultName () const |
| Returns the algorithm string identifier. | |
Static Public Member Functions | |
| template<typename _Tp > | |
| static Ptr< _Tp > | read (const FileNode &fn) |
| Reads algorithm from the file node. | |
| 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. | |
Detailed Description
Gaussian Mixture-based Background/Foreground Segmentation Algorithm.
The class implements the Gaussian mixture model background subtraction described in Zivkovic2004 and Zivkovic2006 .
Definition at line 90 of file background_segm.hpp.
Member Function Documentation
| virtual CV_WRAP void apply | ( | InputArray | image, |
| OutputArray | fgmask, | ||
| double | learningRate = -1 |
||
| ) | [pure virtual, inherited] |
Computes a foreground mask.
- Parameters:
-
image Next video frame. 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.
| virtual CV_WRAP void clear | ( | ) | [virtual, inherited] |
Clears the algorithm state.
Reimplemented in DescriptorMatcher, and FlannBasedMatcher.
| virtual bool empty | ( | ) | const [virtual, inherited] |
| virtual CV_WRAP void getBackgroundImage | ( | OutputArray | backgroundImage ) | const [pure virtual, inherited] |
Computes a background image.
- Parameters:
-
backgroundImage The output background image.
- Note:
- Sometimes the background image can be very blurry, as it contain the average background statistics.
| virtual CV_WRAP double 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.
| virtual CV_WRAP double 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.
| virtual CV_WRAP String getDefaultName | ( | ) | const [virtual, inherited] |
Returns the algorithm string identifier.
This string is used as top level xml/yml node tag when the object is saved to a file or string.
| virtual CV_WRAP bool getDetectShadows | ( | ) | const [pure virtual] |
Returns the shadow detection flag.
If true, the algorithm detects shadows and marks them. See createBackgroundSubtractorMOG2 for details.
| virtual CV_WRAP int getHistory | ( | ) | const [pure virtual] |
Returns the number of last frames that affect the background model.
| virtual CV_WRAP int getNMixtures | ( | ) | const [pure virtual] |
Returns the number of gaussian components in the background model.
| virtual CV_WRAP double 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 Cucchiarra, Detecting Moving Shadows...*, IEEE PAMI,2003.
| virtual CV_WRAP int 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.
| virtual CV_WRAP double getVarInit | ( | ) | const [pure virtual] |
Returns the initial variance of each gaussian component.
| virtual CV_WRAP double 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.
| virtual CV_WRAP double 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.
| static Ptr<_Tp> load | ( | const String & | filename, |
| const String & | objname = String() |
||
| ) | [static, inherited] |
Loads algorithm from the file.
- Parameters:
-
filename Name of the file to read. objname The optional name of the node to read (if empty, the first top-level node will be used)
This is static template method of Algorithm. It's usage is following (in the case of SVM):
Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml");
In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn).
| static Ptr<_Tp> loadFromString | ( | const String & | strModel, |
| const String & | objname = String() |
||
| ) | [static, inherited] |
Loads algorithm from a String.
- Parameters:
-
strModel The string variable containing the model you want to load. objname The optional name of the node to read (if empty, the first top-level node will be used)
This is static template method of Algorithm. It's usage is following (in the case of SVM):
Ptr<SVM> svm = Algorithm::loadFromString<SVM>(myStringModel);
Reads algorithm from the file node.
This is static template method of Algorithm. It's usage is following (in the case of SVM):
cv::FileStorage fsRead("example.xml", FileStorage::READ); Ptr<SVM> svm = Algorithm::read<SVM>(fsRead.root());
In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn) and also have static create() method without parameters (or with all the optional parameters)
Reimplemented in Feature2D, DescriptorMatcher, and FlannBasedMatcher.
| virtual void read | ( | const FileNode & | fn ) | [virtual, inherited] |
Reads algorithm parameters from a file storage.
Reimplemented in Feature2D, DescriptorMatcher, and FlannBasedMatcher.
| virtual CV_WRAP void save | ( | const String & | filename ) | const [virtual, inherited] |
Saves the algorithm to a file.
In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
| virtual CV_WRAP void setBackgroundRatio | ( | double | ratio ) | [pure virtual] |
Sets the "background ratio" parameter of the algorithm.
| virtual CV_WRAP void setComplexityReductionThreshold | ( | double | ct ) | [pure virtual] |
Sets the complexity reduction threshold.
| virtual CV_WRAP void setDetectShadows | ( | bool | detectShadows ) | [pure virtual] |
Enables or disables shadow detection.
| virtual CV_WRAP void setHistory | ( | int | history ) | [pure virtual] |
Sets the number of last frames that affect the background model.
| virtual CV_WRAP void setNMixtures | ( | int | nmixtures ) | [pure virtual] |
Sets the number of gaussian components in the background model.
The model needs to be reinitalized to reserve memory.
| virtual CV_WRAP void setShadowThreshold | ( | double | threshold ) | [pure virtual] |
Sets the shadow threshold.
| virtual CV_WRAP void setShadowValue | ( | int | value ) | [pure virtual] |
Sets the shadow value.
| virtual CV_WRAP void setVarInit | ( | double | varInit ) | [pure virtual] |
Sets the initial variance of each gaussian component.
| virtual CV_WRAP void setVarThreshold | ( | double | varThreshold ) | [pure virtual] |
Sets the variance threshold for the pixel-model match.
| virtual CV_WRAP void setVarThresholdGen | ( | double | varThresholdGen ) | [pure virtual] |
Sets the variance threshold for the pixel-model match used for new mixture component generation.
| virtual void write | ( | FileStorage & | fs ) | const [virtual, inherited] |
Stores algorithm parameters in a file storage.
Reimplemented in Feature2D, DescriptorMatcher, and FlannBasedMatcher.
Generated on Tue Jul 12 2022 18:20:24 by
1.7.2