docs: public static <T extends ImageBase<T>, Motion extends InvertibleTransform<Motion>>
  	BackgroundMovingBasic<T,Motion> movingBasic(@Nonnull ConfigBackgroundBasic config ,
  												Point2Transform2Model_F32<Motion> transform, ImageType<T> imageType ) {
  
  		config.checkValidity();
  
  		BackgroundMovingBasic<T,Motion> ret;
  
  		switch( imageType.getFamily() ) {
  			case GRAY:
  				ret= new BackgroundMovingBasic_SB(config.learnRate,config.threshold,
  						transform,config.interpolation,imageType.getImageClass());
  				break;
  
  			case PLANAR:
  				ret= new BackgroundMovingBasic_PL(config.learnRate,config.threshold,
  						transform,config.interpolation,imageType);
  				break;
  
  			case INTERLEAVED:
  				ret= new BackgroundMovingBasic_IL(config.learnRate,config.threshold,
  						transform,config.interpolation,imageType);
  				break;
  
  			default:
  				throw new IllegalArgumentException("Unknown image type");
  		}
  
  		ret.setUnknownValue(config.unknownValue);
  		return ret;
  	}