code: public static <T extends ImageGray<T>,D extends ImageGray<D>>
  	TrackerObjectQuad<T> sparseFlow(SfotConfig config, Class<T> imageType , Class<D> derivType ) {
  
  		if( derivType == null )
  			derivType = GImageDerivativeOps.getDerivativeType(imageType);
  
  		if( config == null )
  			config = new SfotConfig();
  
  		ImageGradient<T, D> gradient = FactoryDerivative.sobel(imageType,derivType);
  
  		SparseFlowObjectTracker<T,D> tracker = new SparseFlowObjectTracker<>(config, imageType, derivType, gradient);
  
  		return new Sfot_to_TrackObjectQuad<>(tracker, imageType);
  	}
docs: Create an instance of {@link SparseFlowObjectTracker  Sparse Flow Object Tracker} for the
  {@link TrackerObjectQuad} interface.
  @param config Configuration for the tracker,  Null for default.
  @param <T> Image input type
  @param <D> Image derivative type.  Null for default.
  @return TrackerObjectQuad