code: public void zeroMeanStdOne( int radius , T input , double maxPixelValue , double delta , T output ) {
  		// check preconditions and initialize data structures
  		initialize(input, output);
  
  		// avoid overflow issues by ensuring that the max pixel value is 1
  		T adjusted = ensureMaxValueOfOne(input, maxPixelValue);
  
  		// take advantage of 2D gaussian kernels being separable
  		if( border == null ) {
  			WorkArrays work = GeneralizedImageOps.createWorkArray(input.getImageType());
  			GBlurImageOps.mean(adjusted, localMean, radius, output, work);
  			GPixelMath.pow2(adjusted, pow2);
  			GBlurImageOps.mean(pow2, localPow2, radius, output, work);
  		} else {
  			throw new IllegalArgumentException("Only renormalize border supported here so far.  This can be changed...");
  		}
  
  		// Compute the final output
  		if( imageType == GrayF32.class )
  			computeOutput((GrayF32)input, (float)delta, (GrayF32)output, (GrayF32)adjusted);
  		else
  			computeOutput((GrayF64)input, delta, (GrayF64)output, (GrayF64)adjusted);
  	}
docs: /*
  <p>Normalizes the input image such that local statics are a zero mean and with standard deviation
  of 1.  The image border is handled by truncating the kernel and renormalizing it so that it's sum is
  still one.</p>
  
  <p>output[x,y] = (input[x,y]-mean[x,y])/(stdev[x,y] + delta)</p>
  
  @param input Input image
  @param maxPixelValue maximum value of a pixel element in the input image. -1 = compute max value.  Typically
  this is 255 or 1.
  @param delta A small value used to avoid divide by zero errors.  Typical 1e-4f for 32 bit and 1e-8 for 64bit
  @param output Storage for output