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 [FGD2003]_.
The results are available through the class fields:
..ocv:member:: cv::gpu::GpuMat background
The output background image.
..ocv:member:: cv::gpu::GpuMat foreground
The output foreground mask as an 8-bit binary image.
..ocv:member:: cv::gpu::GpuMat foreground_regions
The output foreground regions calculated by :ocv:func:`findContours`.
..ocv:class:: gpu::BackgroundSubtractorMOG : public cv::BackgroundSubtractorMOG
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 [MOG2001]_.
@ -134,275 +17,108 @@ The class discriminates between foreground and background pixels by building and
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 [MOG2004]_.
Here are important members of the class that control the algorithm, which you can set after constructing the class instance:
..ocv:member:: float backgroundRatio
Threshold defining whether the component is significant enough to be included into the background model ( corresponds to ``TB=1-cf`` from the paper??which paper??). ``cf=0.1 => TB=0.9`` is default. For ``alpha=0.001``, it means that the mode should exist for approximately 105 frames before it is considered foreground.
..ocv:member:: float varThreshold
Threshold for the squared Mahalanobis distance that helps decide when a sample is close to the existing components (corresponds to ``Tg``). If it is not close to any component, a new component is generated. ``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.
..ocv:member:: float fVarInit
Initial variance for the newly generated components. It affects the speed of adaptation. The parameter value is based on your estimate of the typical standard deviation from the images. OpenCV uses 15 as a reasonable value.
..ocv:member:: float fVarMin
Parameter used to further control the variance.
..ocv:member:: float fVarMax
Parameter used to further control the variance.
..ocv:member:: float fCT
:param nmixtures:Number of Gaussian mixtures.
Complexity reduction parameter. 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.
:param backgroundRatio:Background ratio.
..ocv:member:: uchar nShadowDetection
:param noiseSigma:Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value.
The value for marking shadow pixels in the output foreground mask. Default value is 127.
..ocv:member:: float fTau
Shadow threshold. The shadow is detected if the pixel is a darker version of the background. ``Tau`` 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 [ShadowDetect2003]_.
..ocv:class:: gpu::BackgroundSubtractorMOG2 : public cv::BackgroundSubtractorMOG2
Parameter defining whether shadow detection should be enabled.
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 [MOG2004]_.
:param varThreshold:Threshold on the squared Mahalanobis distance between the pixel and the model to decide whether a pixel is well described by the background model. This parameter does not affect the background update.
:param frame:Next video frame.
:param detectShadows:If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false.
:param fgmask:The output foreground mask as an 8-bit binary image.
:param stream:Stream for the asynchronous version.
gpu::BackgroundSubtractorGMG
----------------------------
Background/Foreground Segmentation Algorithm.
..ocv:class:: gpu::BackgroundSubtractorGMG : public cv::BackgroundSubtractorGMG
gpu::MOG2_GPU::getBackgroundImage
---------------------------------
Computes a background image.
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 [GMG2012]_.
:param initializationFrames:Number of frames of video to use to initialize histograms.
gpu::MOG2_GPU::release
----------------------
Releases all inner buffer's memory.
:param decisionThreshold:Value above which pixel is determined to be FG.
..ocv:function:: void gpu::MOG2_GPU::release()
gpu::BackgroundSubtractorFGD
----------------------------
gpu::GMG_GPU
------------
..ocv:class:: gpu::GMG_GPU
..ocv:class:: gpu::BackgroundSubtractorFGD : public cv::BackgroundSubtractor
Class used for background/foreground segmentation. ::
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 [FGD2003]_. ::
class GMG_GPU_GPU
class CV_EXPORTS BackgroundSubtractorFGD : public cv::BackgroundSubtractor
{
public:
GMG_GPU();
void initialize(Size frameSize, float min = 0.0f, float max = 255.0f);
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 [GMG2012]_.
Here are important members of the class that control the algorithm, which you can set after constructing the class instance:
..ocv:member:: int maxFeatures
Total number of distinct colors to maintain in histogram.
..ocv:member:: float learningRate
Set between 0.0 and 1.0, determines how quickly features are "forgotten" from histograms.
..ocv:member:: int numInitializationFrames
Number of frames of video to use to initialize histograms.
..ocv:member:: int quantizationLevels
Number of discrete levels in each channel to be used in histograms.
..ocv:member:: float backgroundPrior
Prior probability that any given pixel is a background pixel. A sensitivity parameter.
..ocv:member:: float decisionThreshold
..seealso:::ocv:class:`BackgroundSubtractor`
Value above which pixel is determined to be FG.
..ocv:member:: float smoothingRadius
Smoothing radius, in pixels, for cleaning up FG image.
..[MOG2001] P. KadewTraKuPong and R. Bowden. *An improved adaptive background mixture model for real-time tracking with shadow detection*. Proc. 2nd European Workshop on Advanced Video-Based Surveillance Systems, 2001
..[MOG2004] Z. Zivkovic. *Improved adaptive Gausian mixture model for background subtraction*. International Conference Pattern Recognition, UK, August, 2004
..[GMG2012] A. Godbehere, A. Matsukawa and K. Goldberg. *Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art Installation*. American Control Conference, Montreal, June 2012