docs: public static <T extends ImageGray<T>, D extends ImageGray<D>>
  	FeatureLaplacePyramid<T, D> harrisLaplace(int extractRadius,
  											  float detectThreshold,
  											  int maxFeatures,
  											  Class<T> imageType,
  											  Class<D> derivType) {
  		GradientCornerIntensity<D> harris = FactoryIntensityPointAlg.harris(extractRadius, 0.04f, false, derivType);
  		GeneralFeatureIntensity<T, D> intensity = new WrapperGradientCornerIntensity<>(harris);
  		NonMaxSuppression extractor = FactoryFeatureExtractor.nonmax(
  				new ConfigExtract(extractRadius, detectThreshold, extractRadius, true));
  		GeneralFeatureDetector<T, D> detector = new GeneralFeatureDetector<>(intensity, extractor);
  		detector.setMaxFeatures(maxFeatures);
  
  		AnyImageDerivative<T, D> deriv = GImageDerivativeOps.derivativeForScaleSpace(imageType,derivType);
  		ImageFunctionSparse<T> sparseLaplace = FactoryDerivativeSparse.createLaplacian(imageType, null);
  
  		return new FeatureLaplacePyramid<>(detector, sparseLaplace, deriv, 2);
  	}