code: public static <T extends ImageBase<T>>
  	TrackerObjectQuad<T> meanShiftLikelihood(int maxIterations,
  											 int numBins,
  											 double maxPixelValue,
  											 MeanShiftLikelihoodType modelType,
  											 ImageType<T> imageType) {
  		PixelLikelihood<T> likelihood;
  
  		switch( modelType ) {
  			case HISTOGRAM:
  				likelihood = FactoryTrackerObjectAlgs.likelihoodHistogramCoupled(maxPixelValue,numBins,imageType);
  				break;
  
  			case HISTOGRAM_INDEPENDENT_RGB_to_HSV:
  				if( imageType.getNumBands() != 3 )
  					throw new IllegalArgumentException("Expected RGB image as input with 3-bands");
  				likelihood = FactoryTrackerObjectAlgs.
  						likelihoodHueSatHistIndependent(maxPixelValue, numBins, (ImageType) imageType);
  				break;
  
  			case HISTOGRAM_RGB_to_HSV:
  				if( imageType.getNumBands() != 3 )
  					throw new IllegalArgumentException("Expected RGB image as input with 3-bands");
  				likelihood = FactoryTrackerObjectAlgs.likelihoodHueSatHistCoupled(maxPixelValue,numBins,(ImageType)imageType);
  				break;
  
  			default:
  				throw new IllegalArgumentException("Unknown likelihood model "+modelType);
  		}
  
  		TrackerMeanShiftLikelihood<T> alg =
  				new TrackerMeanShiftLikelihood<>(likelihood, maxIterations, 0.1f);
  
  		return new Msl_to_TrackerObjectQuad<>(alg, likelihood, imageType);
  	}
docs: Very basic and very fast implementation of mean-shift which uses a fixed sized rectangle for its region.
  Works best when the target is composed of a single color.
  
  @see TrackerMeanShiftLikelihood
  
  @param maxIterations Maximum number of mean-shift iterations.  Try 30.
  @param numBins Number of bins in the histogram color model.  Try 5.
  @param maxPixelValue Maximum number of pixel values.  For 8-bit images this will be 256
  @param modelType Type of color model used.
  @param imageType Type of image
  @return TrackerObjectQuad based on {@link TrackerMeanShiftLikelihood}.