Returns: - denoised: maximally denoised image """ # Ensure float in [0,1] range if image.max() > 1.0: image = image.astype(np.float32) / 255.0 else: image = image.astype(np.float32)
# 2. Wavelet hard thresholding (removes residual high-frequency noise) coeffs = pywt.wavedec2(denoised, wavelet, level=4) if denoised.ndim == 2 else \ pywt.wavedec(denoised, wavelet, level=4) max denoise
Parameters: - image: numpy array (grayscale or color) normalized to [0,1] or [0,255] - sigma: estimated noise standard deviation (used for wavelet threshold) - h: non-local means filter strength (larger = stronger denoising) - wavelet: wavelet type for thresholding Returns: - denoised: maximally denoised image """ #