Wavelet-based noise estimation is widely used in image processing and signal denoising. The key idea is that wavelet transforms can separate noise from meaningful structures, allowing for robust noise level estimation.
Gaussian noise is high-frequency and often dominates the fine-scale (high-frequency) wavelet coefficients. By analyzing the distribution of wavelet coefficients at the finest level, we can estimate the noise variance.
The standard approach uses Donoho & Johnstone's Median Absolute Deviation (MAD) estimator:
$$ \sigma=\frac{\operatorname{median}\left(\left|w_i\right|\right)}{0.6745} $$
where:
We'll use PyWavelets (pywt
) to compute the wavelet transform and estimate Gaussian noise in an image.
https://gist.github.com/viadean/be9827e30268452094325d11b17a1bcb