OpenCV: cv::BackgroundSubtractorKNN Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Member Functions | List of all members
cv::BackgroundSubtractorKNN Class Referenceabstract
Video Analysis » Motion Analysis

K-nearest neighbours - based Background/Foreground Segmentation Algorithm. More...

`#include "background_segm.hpp"`

Inheritance diagram for cv::BackgroundSubtractorKNN:

## Public Member Functions
virtual bool | getDetectShadows () const =0
| Returns the shadow detection flag. More...
virtual double | getDist2Threshold () const =0
| Returns the threshold on the squared distance between the pixel and the sample. More...
virtual int | getHistory () const =0
| Returns the number of last frames that affect the background model. More...
virtual int | getkNNSamples () const =0
| Returns the number of neighbours, the k in the kNN. More...
virtual int | getNSamples () const =0
| Returns the number of data samples 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 void | setDetectShadows (bool detectShadows)=0
| Enables or disables shadow detection. More...
virtual void | setDist2Threshold (double _dist2Threshold)=0
| Sets the threshold on the squared distance. More...
virtual void | setHistory (int history)=0
| Sets the number of last frames that affect the background model. More...
virtual void | setkNNSamples (int _nkNN)=0
| Sets the k in the kNN. How many nearest neighbours need to match. More...
virtual void | setNSamples (int _nN)=0
| Sets the number of data samples 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...
Public Member Functions inherited from cv::BackgroundSubtractor
virtual void | apply (InputArray image, OutputArray fgmask, double learningRate=-1)=0
| Computes a foreground mask. More...
virtual void | getBackgroundImage (OutputArray backgroundImage) const =0
| Computes a background image. More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
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...

## Additional Inherited Members
Static Public Member Functions inherited from cv::Algorithm
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 inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

K-nearest neighbours - based Background/Foreground Segmentation Algorithm.

The class implements the K-nearest neighbours background subtraction described in [104] . Very efficient if number of foreground pixels is low.

## Member Function Documentation

## ◆ getDetectShadows()

virtual bool cv::BackgroundSubtractorKNN::getDetectShadows | ( |  | ) | const
| pure virtual

Returns the shadow detection flag.

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

## ◆ getDist2Threshold()

virtual double cv::BackgroundSubtractorKNN::getDist2Threshold | ( |  | ) | const
| pure virtual

Returns the threshold on the squared distance between the pixel and the sample.

The threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to a data sample.

## ◆ getHistory()

virtual int cv::BackgroundSubtractorKNN::getHistory | ( |  | ) | const
| pure virtual

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

## ◆ getkNNSamples()

virtual int cv::BackgroundSubtractorKNN::getkNNSamples | ( |  | ) | const
| pure virtual

Returns the number of neighbours, the k in the kNN.

K is the number of samples that need to be within dist2Threshold in order to decide that that pixel is matching the kNN background model.

## ◆ getNSamples()

virtual int cv::BackgroundSubtractorKNN::getNSamples | ( |  | ) | const
| pure virtual

Returns the number of data samples in the background model.

## ◆ getShadowThreshold()

virtual double cv::BackgroundSubtractorKNN::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 Cucchiara, Detecting Moving Shadows...*, IEEE PAMI,2003.

## ◆ getShadowValue()

virtual int cv::BackgroundSubtractorKNN::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.

## ◆ setDetectShadows()

virtual void cv::BackgroundSubtractorKNN::setDetectShadows | ( | bool | detectShadows | ) |
| pure virtual

Enables or disables shadow detection.

## ◆ setDist2Threshold()

virtual void cv::BackgroundSubtractorKNN::setDist2Threshold | ( | double | _dist2Threshold | ) |
| pure virtual

Sets the threshold on the squared distance.

## ◆ setHistory()

virtual void cv::BackgroundSubtractorKNN::setHistory | ( | int | history | ) |
| pure virtual

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

## ◆ setkNNSamples()

virtual void cv::BackgroundSubtractorKNN::setkNNSamples | ( | int | _nkNN | ) |
| pure virtual

Sets the k in the kNN. How many nearest neighbours need to match.

## ◆ setNSamples()

virtual void cv::BackgroundSubtractorKNN::setNSamples | ( | int | _nN | ) |
| pure virtual

Sets the number of data samples in the background model.

The model needs to be reinitalized to reserve memory.

## ◆ setShadowThreshold()

virtual void cv::BackgroundSubtractorKNN::setShadowThreshold | ( | double | threshold | ) |
| pure virtual

Sets the shadow threshold.

## ◆ setShadowValue()

virtual void cv::BackgroundSubtractorKNN::setShadowValue | ( | int | value | ) |
| pure virtual

Sets the shadow value.

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

- video/include/opencv2/video/background_segm.hpp