code: public static <T extends ImageBase<T>>
  	BackgroundStationaryGmm<T> stationaryGmm(@Nullable ConfigBackgroundGmm config , ImageType<T> imageType ) {
  
  		if( config == null )
  			config = new ConfigBackgroundGmm();
  		else
  			config.checkValidity();
  
  		BackgroundStationaryGmm<T> ret;
  
  		switch( imageType.getFamily() ) {
  			case GRAY:
  				ret = new BackgroundStationaryGmm_SB(config.learningPeriod,config.decayCoefient,
  						config.numberOfGaussian,imageType);
  				break;
  
  			case PLANAR:
  			case INTERLEAVED:
  				ret =  new BackgroundStationaryGmm_MB(config.learningPeriod,config.decayCoefient,
  						config.numberOfGaussian,imageType);
  				break;
  
  			default:
  				throw new IllegalArgumentException("Unknown image type");
  		}
  
  		ret.setInitialVariance(config.initialVariance);
  		ret.setMaxDistance(config.maxDistance);
  		ret.setSignificantWeight(config.significantWeight);
  		ret.setUnknownValue(config.unknownValue);
  
  		return ret;
  	}
docs: Creates an instance of {@link BackgroundStationaryGmm}.
  
  @param config Configures the background model
  @param imageType Type of input image
  @return new instance of the background model