OpenCV  3.2.0-dev
Open Source Computer Vision
cv::cuda::BackgroundSubtractorMOG2 Class Referenceabstract

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

#include "cudabgsegm.hpp"

Inheritance diagram for cv::cuda::BackgroundSubtractorMOG2:
Collaboration diagram for cv::cuda::BackgroundSubtractorMOG2:

Public Member Functions

virtual void apply (InputArray image, OutputArray fgmask, double learningRate, Stream &stream)=0
 
virtual void apply (InputArray image, OutputArray fgmask, double learningRate=-1)=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 void getBackgroundImage (OutputArray backgroundImage, Stream &stream) const =0
 
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...
 

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
 

Detailed Description

Gaussian Mixture-based Background/Foreground Segmentation Algorithm.

The class discriminates between foreground and background pixels by building and maintaining a model of the background. Any pixel which does not fit this model is then deemed to be foreground. The class implements algorithm described in [97] .

See also
BackgroundSubtractorMOG2

Member Function Documentation

virtual void cv::cuda::BackgroundSubtractorMOG2::apply ( InputArray  image,
OutputArray  fgmask,
double  learningRate,
Stream stream 
)
pure virtual
virtual void cv::BackgroundSubtractorMOG2::apply ( InputArray  image,
OutputArray  fgmask,
double  learningRate = -1 
)
pure virtualinherited

Computes a foreground mask.

Parameters
imageNext video frame. Floating point frame will be used without scaling and should be in range \([0,255]\).
fgmaskThe output foreground mask as an 8-bit binary image.
learningRateThe 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.
virtual void cv::Algorithm::clear ( )
inlinevirtualinherited

Clears the algorithm state.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::cuda::DescriptorMatcher.

virtual bool cv::Algorithm::empty ( ) const
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, cv::BaseCascadeClassifier, and cv::cuda::DescriptorMatcher.

virtual void cv::BackgroundSubtractor::getBackgroundImage ( OutputArray  backgroundImage) const
pure virtualinherited

Computes a background image.

Parameters
backgroundImageThe output background image.
Note
Sometimes the background image can be very blurry, as it contain the average background statistics.
virtual void cv::cuda::BackgroundSubtractorMOG2::getBackgroundImage ( OutputArray  backgroundImage,
Stream stream 
) const
pure virtual
virtual double cv::BackgroundSubtractorMOG2::getBackgroundRatio ( ) const
pure virtualinherited

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 double cv::BackgroundSubtractorMOG2::getComplexityReductionThreshold ( ) const
pure virtualinherited

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 String cv::Algorithm::getDefaultName ( ) const
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.

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

Returns the shadow detection flag.

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

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

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

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

Returns the number of gaussian components in the background model.

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

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 int cv::BackgroundSubtractorMOG2::getShadowValue ( ) const
pure virtualinherited

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 double cv::BackgroundSubtractorMOG2::getVarInit ( ) const
pure virtualinherited

Returns the initial variance of each gaussian component.

virtual double cv::BackgroundSubtractorMOG2::getVarMax ( ) const
pure virtualinherited
virtual double cv::BackgroundSubtractorMOG2::getVarMin ( ) const
pure virtualinherited
virtual double cv::BackgroundSubtractorMOG2::getVarThreshold ( ) const
pure virtualinherited

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 double cv::BackgroundSubtractorMOG2::getVarThresholdGen ( ) const
pure virtualinherited

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.

template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::load ( const String filename,
const String objname = String() 
)
inlinestaticinherited

Loads algorithm from the file.

Parameters
filenameName of the file to read.
objnameThe 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).

References cv::Ptr< T >::empty(), cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), and cv::FileStorage::READ.

Here is the call graph for this function:

template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::loadFromString ( const String strModel,
const String objname = String() 
)
inlinestaticinherited

Loads algorithm from a String.

Parameters
strModelThe string variable containing the model you want to load.
objnameThe 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);

References CV_WRAP, cv::Ptr< T >::empty(), cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::MEMORY, and cv::FileStorage::READ.

Here is the call graph for this function:

virtual void cv::Algorithm::read ( const FileNode fn)
inlinevirtualinherited

Reads algorithm parameters from a file storage.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.

template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::read ( const FileNode fn)
inlinestaticinherited

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)

References cv::Ptr< T >::empty().

Here is the call graph for this function:

virtual void cv::Algorithm::save ( const String filename) const
virtualinherited

Saves the algorithm to a file.

In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).

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

Sets the "background ratio" parameter of the algorithm.

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

Sets the complexity reduction threshold.

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

Enables or disables shadow detection.

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

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

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

Sets the number of gaussian components in the background model.

The model needs to be reinitalized to reserve memory.

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

Sets the shadow threshold.

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

Sets the shadow value.

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

Sets the initial variance of each gaussian component.

virtual void cv::BackgroundSubtractorMOG2::setVarMax ( double  varMax)
pure virtualinherited
virtual void cv::BackgroundSubtractorMOG2::setVarMin ( double  varMin)
pure virtualinherited
virtual void cv::BackgroundSubtractorMOG2::setVarThreshold ( double  varThreshold)
pure virtualinherited

Sets the variance threshold for the pixel-model match.

Examples:
segment_objects.cpp.
virtual void cv::BackgroundSubtractorMOG2::setVarThresholdGen ( double  varThresholdGen)
pure virtualinherited

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

virtual void cv::Algorithm::write ( FileStorage fs) const
inlinevirtualinherited

Stores algorithm parameters in a file storage.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.

void cv::Algorithm::writeFormat ( FileStorage fs) const
protectedinherited

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