content: 
  //
  // This file is auto-generated. Please don't modify it!
  //
  package org.opencv.video;
  
  
  
  // C++: class BackgroundSubtractorMOG2
  /**
   * <p>Gaussian Mixture-based Background/Foreground Segmentation Algorithm.</p>
   *
   * <p>Here are important members of the class that control the algorithm, which you
   * can set after constructing the class instance:</p>
   *
   * <p>Maximum allowed number of mixture components. Actual number is determined
   * dynamically per pixel.</p>
   *
   * <p>Threshold defining whether the component is significant enough to be included
   * into the background model (corresponds to <code>TB=1-cf</code> from the
   * paper??which paper??). <code>cf=0.1 => TB=0.9</code> is default. For
   * <code>alpha=0.001</code>, it means that the mode should exist for
   * approximately 105 frames before it is considered foreground.
   * <code></p>
   *
   * <p>// C++ code:</p>
   *
   * <p>Threshold for the squared Mahalanobis distance that helps decide when a
   * sample is close to the existing components (corresponds to <code>Tg</code>).
   * If it is not close to any component, a new component is generated. <code>3
   * sigma => Tg=3*3=9</code> is default. A smaller <code>Tg</code> value
   * generates more components. A higher <code>Tg</code> value may result in a
   * small number of components but they can grow too large.</p>
   *
   * <p>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.</p>
   *
   * <p>Parameter used to further control the variance.</p>
   *
   * <p>Parameter used to further control the variance.</p>
   *
   * <p>Complexity reduction parameter. This parameter defines the number of samples
   * needed to accept to prove the component exists. <code>CT=0.05</code> is a
   * default value for all the samples. By setting <code>CT=0</code> you get an
   * algorithm very similar to the standard Stauffer&Grimson algorithm.</p>
   *
   * <p>The value for marking shadow pixels in the output foreground mask. Default
   * value is 127.</p>
   *
   * <p>Shadow threshold. The shadow is detected if the pixel is a darker version of
   * the background. <code>Tau</code> is a threshold defining how much darker the
   * shadow can be. <code>Tau= 0.5</code> means that if a pixel is more than twice
   * darker then it is not shadow. See Prati,Mikic,Trivedi,Cucchiarra, *Detecting
   * Moving Shadows...*, IEEE PAMI,2003.</p>
   *
   * <p>The class implements the Gaussian mixture model background subtraction
   * described in: </code></p>
   * <ul>
   *   <li> Z.Zivkovic, *Improved adaptive Gausian mixture model for background
   * subtraction*, International Conference Pattern Recognition, UK, August, 2004,
   * http://www.zoranz.net/Publications/zivkovic2004ICPR.pdf. The code is very
   * fast and performs also shadow detection. Number of Gausssian components is
   * adapted per pixel.
   *   <li> Z.Zivkovic, F. van der Heijden, *Efficient Adaptive Density Estimapion
   * per Image Pixel for the Task of Background Subtraction*, Pattern Recognition
   * Letters, vol. 27, no. 7, pages 773-780, 2006. The algorithm similar to the
   * standard Stauffer&Grimson algorithm with additional selection of the number
   * of the Gaussian components based on: Z.Zivkovic, F.van der Heijden, Recursive
   * unsupervised learning of finite mixture models, IEEE Trans. on Pattern
   * Analysis and Machine Intelligence, vol.26, no.5, pages 651-656, 2004.
   * </ul>
   *
   * @see <a href="http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2">org.opencv.video.BackgroundSubtractorMOG2 : public BackgroundSubtractor</a>
   */
  public class BackgroundSubtractorMOG2 extends BackgroundSubtractor {
  
      protected BackgroundSubtractorMOG2(long addr) { super(addr); }
  
  
      //
      // C++:   BackgroundSubtractorMOG2::BackgroundSubtractorMOG2()
      //
  
  /**
   * <p>The constructors.</p>
   *
   * @see <a href="http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2-backgroundsubtractormog2">org.opencv.video.BackgroundSubtractorMOG2.BackgroundSubtractorMOG2</a>
   */
      public   BackgroundSubtractorMOG2()
      {
  
          super( BackgroundSubtractorMOG2_0() );
  
          return;
      }
  
  
      //
      // C++:   BackgroundSubtractorMOG2::BackgroundSubtractorMOG2(int history, float varThreshold, bool bShadowDetection = true)
      //
  
  /**
   * <p>The constructors.</p>
   *
   * @param history Length of the history.
   * @param varThreshold Threshold on the squared Mahalanobis distance to decide
   * whether it is well described by the background model (see Cthr??). This
   * parameter does not affect the background update. A typical value could be 4
   * sigma, that is, <code>varThreshold=4*4=16;</code> (see Tb??).
   * @param bShadowDetection Parameter defining whether shadow detection should be
   * enabled (<code>true</code> or <code>false</code>).
   *
   * @see <a href="http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2-backgroundsubtractormog2">org.opencv.video.BackgroundSubtractorMOG2.BackgroundSubtractorMOG2</a>
   */
      public   BackgroundSubtractorMOG2(int history, float varThreshold, boolean bShadowDetection)
      {
  
          super( BackgroundSubtractorMOG2_1(history, varThreshold, bShadowDetection) );
  
          return;
      }
  
  /**
   * <p>The constructors.</p>
   *
   * @param history Length of the history.
   * @param varThreshold Threshold on the squared Mahalanobis distance to decide
   * whether it is well described by the background model (see Cthr??). This
   * parameter does not affect the background update. A typical value could be 4
   * sigma, that is, <code>varThreshold=4*4=16;</code> (see Tb??).
   *
   * @see <a href="http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2-backgroundsubtractormog2">org.opencv.video.BackgroundSubtractorMOG2.BackgroundSubtractorMOG2</a>
   */
      public   BackgroundSubtractorMOG2(int history, float varThreshold)
      {
  
          super( BackgroundSubtractorMOG2_2(history, varThreshold) );
  
          return;
      }
  
  
      @Override
      protected void finalize() throws Throwable {
          delete(nativeObj);
      }
  
  
  
      // C++:   BackgroundSubtractorMOG2::BackgroundSubtractorMOG2()
      private static native long BackgroundSubtractorMOG2_0();
  
      // C++:   BackgroundSubtractorMOG2::BackgroundSubtractorMOG2(int history, float varThreshold, bool bShadowDetection = true)
      private static native long BackgroundSubtractorMOG2_1(int history, float varThreshold, boolean bShadowDetection);
      private static native long BackgroundSubtractorMOG2_2(int history, float varThreshold);
  
      // native support for java finalize()
      private static native void delete(long nativeObj);
  
  }
  