boofcv.alg.background.BackgroundAlgorithmGmm Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of boofcv-feature Show documentation
Show all versions of boofcv-feature Show documentation
BoofCV is an open source Java library for real-time computer vision and robotics applications.
/*
* Copyright (c) 2011-2018, Peter Abeles. All Rights Reserved.
*
* This file is part of BoofCV (http://boofcv.org).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package boofcv.alg.background;
/**
*
* Background model in which each pixel is modeled as a Gaussian mixture model. The number of Gaussians in the
* mixture is determined dynamically. If a pixel value is encountered which doesn't match any mixture then a
* new Gaussian is added. Gaussians are removed when their weight becomes negative. See [1] for details.
*
*
* Tuning Parameters:
*
* - learningPeriod: Specifies how fast a Gaussian changes. Larger values is slower learning. Try 100
* - decayCoef: Adjusts how quickly a Gaussian's weight is reduced. Try 0.001
* - maxGaussian: Maximum number of Gaussian models. Try 10
* - initial variance The initial variance assigned to pixels when they are first observed. By default this is
* Float.MIN_VALUE.
*
*
*
* [1] Zivkovic, Zoran. "Improved adaptive Gaussian mixture model for background subtraction."
* In Pattern Recognition, 2004. ICPR 2004. Proceedings of the 17th International Conference on,
* vol. 2, pp. 28-31. IEEE, 2004.
*
*
* @author Peter Abeles
*/
public interface BackgroundAlgorithmGmm {
/**
* Returns the initial variance assigned to a pixel
* @return initial variance
*/
float getInitialVariance();
/**
* Sets the initial variance assigned to a pixel
* @param initialVariance initial variance
*/
void setInitialVariance(float initialVariance);
/**
* Returns the learning period.
*/
float getLearningPeriod();
/**
* Specifies the learning rate
* @param period Must be more than 0.
*/
void setLearningPeriod(float period);
/**
* Minimum value of a Gaussian's weight to be considered part of the background
*/
void setSignificantWeight( float value );
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy