code: public static <I extends ImageGray<I>, D extends ImageGray<D>>
  	KltTracker<I, D> klt(@Nullable KltConfig config, Class<I> imageType , Class<D> derivType )
  	{
  		if( config == null )
  			config = new KltConfig();
  		if( derivType == null )
  			derivType = GImageDerivativeOps.getDerivativeType(imageType);
  
  		InterpolateRectangle<I> interpInput = FactoryInterpolation.<I>bilinearRectangle(imageType);
  		InterpolateRectangle<D> interpDeriv = FactoryInterpolation.<D>bilinearRectangle(derivType);
  
  		return new KltTracker<>(interpInput, interpDeriv, config);
  	}
docs: Creates a {@link KltTracker}.
  
  NOTE: The pyramid's structure is determined by the input pyramid that is processed.
  
  @param config KLT configuration
  @param imageType Type of input image
  @param derivType Type of image derivative
  @param <I> Input image type.
  @param <D> Derivative image type.
  @return Tracker