code: public static double universalThreshold(ImageGray image , double noiseSigma ) {
  		int w = image.width;
  		int h = image.height;
  
  		return noiseSigma*Math.sqrt(2*Math.log(Math.max(w,h)));
  	}
docs: <p>
  Computes the universal threshold defined in [1], which is the threshold used by
  VisuShrink.  The same threshold is used by other algorithms.
  </p>
  
  <p>
  threshold = &sigma; sqrt( 2*log(max(w,h))<br>
  where (w,h) is the image's width and height.
  </p>
  
  <p>
  [1] D. L. Donoho and I. M. Johnstone, "Ideal spatial adaption via wavelet shrinkage."
  Biometrika, vol 81, pp. 425-455, 1994
  </p>
  @param image Input image.  Only the width and height are used in computing this thresold.
  @param noiseSigma Estimated noise sigma.
  @return universal threshold.