Gaussian Mixture-based Background/Foreground Segmentation Algorithm. More...
#include <opencv2/video/background_segm.hpp>
Public Member Functions | |
virtual void | apply (InputArray image, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE=0 |
Computes a foreground mask. More... | |
virtual void | clear () |
Clears the algorithm state. More... | |
virtual bool | empty () const |
Returns true if the Algorithm is empty (e.g. More... | |
virtual void | getBackgroundImage (OutputArray backgroundImage) const =0 |
Computes a background image. 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 String | getDefaultName () const |
Returns the algorithm string identifier. 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 | read (const FileNode &fn) |
Reads algorithm parameters from a file storage. More... | |
virtual void | save (const String &filename) const |
Saves the algorithm to a file. 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... | |
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... | |
Static Public Member Functions | |
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 | |
void | writeFormat (FileStorage &fs) const |
Gaussian Mixture-based Background/Foreground Segmentation Algorithm.
The class implements the Gaussian mixture model background subtraction described in [110] and [109] .
|
pure virtual |
Computes a foreground mask.
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.
|
inlinevirtualinherited |
Clears the algorithm state.
Reimplemented in cv::FlannBasedMatcher, and cv::DescriptorMatcher.
|
inlinevirtualinherited |
Returns true if the Algorithm is empty (e.g.
in the very beginning or after unsuccessful read
Reimplemented in cv::DescriptorMatcher, cv::ml::StatModel, cv::Feature2D, and cv::BaseCascadeClassifier.
|
pure virtualinherited |
Computes a background image.
backgroundImage | The output background image. |
|
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.
|
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.
|
virtualinherited |
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.
Reimplemented in cv::AKAZE, cv::KAZE, cv::SimpleBlobDetector, cv::GFTTDetector, cv::AgastFeatureDetector, cv::FastFeatureDetector, cv::MSER, cv::ORB, cv::BRISK, and cv::Feature2D.
|
pure virtual |
Returns the shadow detection flag.
If true, the algorithm detects shadows and marks them. See createBackgroundSubtractorMOG2 for details.
|
pure virtual |
Returns the number of last frames that affect the background model.
|
pure virtual |
Returns the number of gaussian components in the background model.
|
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.
|
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.
|
pure virtual |
Returns the initial variance of each gaussian component.
|
pure virtual |
|
pure virtual |
|
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.
|
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.
|
inlinestaticinherited |
Loads algorithm from the file.
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):
In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn).
References CV_Assert, cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::isOpened(), and cv::FileStorage::READ.
|
inlinestaticinherited |
Loads algorithm from a String.
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):
References CV_WRAP, cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::MEMORY, and cv::FileStorage::READ.
|
inlinevirtualinherited |
Reads algorithm parameters from a file storage.
Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.
|
inlinestaticinherited |
Reads algorithm from the file node.
This is static template method of Algorithm. It's usage is following (in the case of SVM):
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)
|
virtualinherited |
Saves the algorithm to a file.
In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
|
pure virtual |
Sets the "background ratio" parameter of the algorithm.
|
pure virtual |
Sets the complexity reduction threshold.
|
pure virtual |
Enables or disables shadow detection.
|
pure virtual |
Sets the number of last frames that affect the background model.
|
pure virtual |
Sets the number of gaussian components in the background model.
The model needs to be reinitalized to reserve memory.
|
pure virtual |
Sets the shadow threshold.
|
pure virtual |
Sets the shadow value.
|
pure virtual |
Sets the initial variance of each gaussian component.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Sets the variance threshold for the pixel-model match.
|
pure virtual |
Sets the variance threshold for the pixel-model match used for new mixture component generation.
|
inlinevirtualinherited |
Stores algorithm parameters in a file storage.
Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.
References CV_WRAP.
Referenced by cv::Feature2D::write(), and cv::DescriptorMatcher::write().
|
inherited |
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.
|
protectedinherited |