code: static public GrayF32 nonMaxSuppression4(GrayF32 intensity , GrayS8 direction , GrayF32 output )
  	{
  		InputSanityCheck.checkSameShape(intensity,direction);
  		output = InputSanityCheck.checkDeclare(intensity,output);
  
  		if( BoofConcurrency.USE_CONCURRENT ) {
  			ImplEdgeNonMaxSuppression_MT.inner4(intensity, direction, output);
  			ImplEdgeNonMaxSuppression_MT.border4(intensity, direction, output);
  		} else {
  			ImplEdgeNonMaxSuppression.inner4(intensity, direction, output);
  			ImplEdgeNonMaxSuppression.border4(intensity, direction, output);
  		}
  
  		return output;
  	}
docs: <p>
  Sets edge intensities to zero if the pixel has an intensity which is less than either of
  the two adjacent pixels.  Pixel adjacency is determined by the gradients discretized direction.
  </p>
  
  @param intensity Edge intensities. Not modified.
  @param direction 4-Discretized direction.  See {@link #discretizeDirection4(GrayF32, GrayS8)}. Not modified.
  @param output Filtered intensity. If null a new image will be declared and returned. Modified.
  @return Filtered edge intensity.