docs: public void process(GrayF32 intensity ) {
  
  		originalMin.reset();
  		originalMax.reset();
  		nonmax.process(intensity,null,null,originalMin,originalMax);
  
  		localExtreme.reset();
  		for (int i = 0; i < originalMin.size; i++) {
  			Point2D_I16 p = originalMin.get(i);
  			float val = intensity.unsafe_get(p.x,p.y);
  			localExtreme.grow().set(-val,false,p);
  		}
  		for (int i = 0; i < originalMax.size; i++) {
  			Point2D_I16 p = originalMax.get(i);
  			float val = intensity.unsafe_get(p.x, p.y);
  			localExtreme.grow().set(val,true,p);
  		}
  
  		if( localExtreme.size > maxTotalFeatures ) {
  			QuickSelect.select(localExtreme.data, maxTotalFeatures, localExtreme.size);
  			localExtreme.size = maxTotalFeatures;
  		}
  	}