Wavelet denoising is a technique used to reduce noise in images while preserving important details and edges. The wavelet_denoise() method in the Wand library applies wavelet-based noise reduction, providing an effective way to enhance image quality without excessive blurring.
- Uses wavelet transforms to separate noise from useful image information.
- Supports customizable denoising through adjustable threshold and softness values.
Syntax
wavelet_denoise(threshold, softness)
Parameters:
- threshold: Controls the denoising strength. Higher values remove more noise but may also reduce fine image details.
- softness: Applies soft thresholding during denoising, resulting in smoother transitions and a more natural appearance.
Implementation
The following example demonstrates how to apply wavelet denoising to an image using the Wand library. A threshold value is specified to identify and suppress noise components while preserving important image features.
Source Image:

from wand.image import Image
with Image(filename ="koala.jpeg") as img:
img.wavelet_denoise(threshold = 0.05 * img.quantum_range,
softness = 0.0)
img.save(filename ="vkoala.jpeg")
Output:

The output image contains reduced noise while maintaining the overall structure and visual details of the original image.
Effect of Increasing Threshold
Increasing the threshold value results in stronger noise reduction. However, excessively large values may remove fine image details along with the noise.
from wand.image import Image
with Image(filename ="koala.jpeg") as img:
img.wavelet_denoise(threshold = 0.065 * img.quantum_range,
softness = 0.00)
img.save(filename ="vkoala2.jpeg")
Output:

The image appears smoother due to stronger denoising, although some fine textures may become less prominent.
Advantages
- Effectively removes noise while preserving image details.
- Produces better visual quality than many basic smoothing filters.
- Allows control over denoising strength through threshold values.
Limitations
- Selecting an appropriate threshold can be challenging.
- High threshold values may remove useful image details.
- Computationally more intensive than simple spatial filters.