Class UtilDenoiseWavelet

java.lang.Object
boofcv.alg.denoise.wavelet.UtilDenoiseWavelet

public class UtilDenoiseWavelet extends Object
Various functions useful for denoising wavelet transforms.
  • Constructor Details

    • UtilDenoiseWavelet

      public UtilDenoiseWavelet()
  • Method Details

    • estimateNoiseStdDev

      public static float estimateNoiseStdDev(GrayF32 subband, @Nullable @org.jetbrains.annotations.Nullable float[] storage)

      Robust median estimator of the noise standard deviation. Typically applied to the HH1 subband.

      σ = Median(|Yij|)/0.6745
      where σ is the estimated noise standard deviation, and Median(|Yij|) is the median absolute value of all the pixels in the subband.

      D. L. Donoho and I. M. Johnstone, "Ideal spatial adaption via wavelet shrinkage." Biometrika, vol 81, pp. 425-455, 1994

      Parameters:
      subband - The subband the image is being computed from. Not modified.
      storage - Used to temporarily store the absolute value of each element in the subband.
      Returns:
      estimated noise variance.
    • subbandAbsVal

      public static float[] subbandAbsVal(GrayF32 subband, @Nullable @org.jetbrains.annotations.Nullable float[] coef)
      Computes the absolute value of each element in the subband image are places it into 'coef'
    • universalThreshold

      public static double universalThreshold(ImageGray image, double noiseSigma)

      Computes the universal threshold defined in [1], which is the threshold used by VisuShrink. The same threshold is used by other algorithms.

      threshold = σ sqrt( 2*log(max(w,h))
      where (w,h) is the image's width and height.

      [1] D. L. Donoho and I. M. Johnstone, "Ideal spatial adaption via wavelet shrinkage." Biometrika, vol 81, pp. 425-455, 1994

      Parameters:
      image - Input image. Only the width and height are used in computing this thresold.
      noiseSigma - Estimated noise sigma.
      Returns:
      universal threshold.