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

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

#include "cudabgsegm.hpp"

Inheritance diagram for cv::cuda::BackgroundSubtractorMOG:
Collaboration diagram for cv::cuda::BackgroundSubtractorMOG:

Public Member Functions

virtual void apply (InputArray image, OutputArray fgmask, double learningRate=-1)=0
 Computes a foreground mask. More...
 
virtual void apply (InputArray image, OutputArray fgmask, double learningRate, Stream &stream)=0
 
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
 
virtual String getDefaultName () const
 Returns the algorithm string identifier. More...
 
virtual int getHistory () const =0
 
virtual int getNMixtures () const =0
 
virtual double getNoiseSigma () const =0
 
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 backgroundRatio)=0
 
virtual void setHistory (int nframes)=0
 
virtual void setNMixtures (int nmix)=0
 
virtual void setNoiseSigma (double noiseSigma)=0
 
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 [41] .

See also
BackgroundSubtractorMOG
Note
  • An example on gaussian mixture based background/foreground segmantation can be found at opencv_source_code/samples/gpu/bgfg_segm.cpp

Member Function Documentation

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

Computes a foreground mask.

Parameters
imageNext video frame.
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.

Implemented in cv::BackgroundSubtractorMOG2.

virtual void cv::cuda::BackgroundSubtractorMOG::apply ( InputArray  image,
OutputArray  fgmask,
double  learningRate,
Stream stream 
)
pure virtual
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::BackgroundSubtractorMOG::getBackgroundImage ( OutputArray  backgroundImage,
Stream stream 
) const
pure virtual
virtual double cv::cuda::BackgroundSubtractorMOG::getBackgroundRatio ( ) const
pure virtual
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 int cv::cuda::BackgroundSubtractorMOG::getHistory ( ) const
pure virtual
virtual int cv::cuda::BackgroundSubtractorMOG::getNMixtures ( ) const
pure virtual
virtual double cv::cuda::BackgroundSubtractorMOG::getNoiseSigma ( ) const
pure virtual
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::cuda::BackgroundSubtractorMOG::setBackgroundRatio ( double  backgroundRatio)
pure virtual
virtual void cv::cuda::BackgroundSubtractorMOG::setHistory ( int  nframes)
pure virtual
virtual void cv::cuda::BackgroundSubtractorMOG::setNMixtures ( int  nmix)
pure virtual
virtual void cv::cuda::BackgroundSubtractorMOG::setNoiseSigma ( double  noiseSigma)
pure virtual
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: