code: public static <I extends ImageGray<I>, D extends ImageGray<D>>
  	PointTracker<I> dda_ST_NCC(ConfigGeneralDetector configExtract, int describeRadius,
  									Class<I> imageType, @Nullable Class<D> derivType) {
  
  		if( derivType == null )
  			derivType = GImageDerivativeOps.getDerivativeType(imageType);
  
  		int w = 2*describeRadius+1;
  
  		DescribePointPixelRegionNCC<I> alg = FactoryDescribePointAlgs.pixelRegionNCC(w, w, imageType);
  
  		GeneralFeatureDetector<I, D> corner = createShiTomasi(configExtract, derivType);
  		EasyGeneralFeatureDetector<I,D> easy = new EasyGeneralFeatureDetector<>(corner, imageType, derivType);
  
  		ScoreAssociateNccFeature score = new ScoreAssociateNccFeature();
  
  		AssociateDescription2D<NccFeature> association =
  				new AssociateDescTo2D<>(
  						FactoryAssociation.greedy(score, Double.MAX_VALUE, true));
  
  		DdaManagerGeneralPoint<I,D,NccFeature> manager =
  				new DdaManagerGeneralPoint<>(easy, new WrapDescribePixelRegionNCC<>(alg, imageType), 1.0);
  
  		return new DetectDescribeAssociate<>(manager, association, new ConfigTrackerDda());
  	}
docs: Creates a tracker which detects Shi-Tomasi corner features and describes them with NCC.
  
  @see ShiTomasiCornerIntensity
  @see DescribePointPixelRegionNCC
  @see boofcv.abst.feature.tracker.DdaManagerDetectDescribePoint
  
  @param configExtract Configuration for extracting features
  @param describeRadius Radius of the region being described.  Try 2.
  @param imageType      Type of image being processed.
  @param derivType      Type of image used to store the image derivative. null == use default