Reputation: 5
I read somewhere For noise removal use 4 level wavelet transformation. Could Anyone please make me understand how it really help ??
Upvotes: 0
Views: 227
Reputation: 15867
The basic idea is that the DWT for the "true" (noise free) image is sparse, i.e. most of the "image energy" is concentrated in a few isolated DWT bins, while the DWT of noise is noise as well - it's distributed more or less evenly among the DWT bins. And finding a few sparse peaks in a sea of noise is much easier than reconstructing a noisy image.
Here's a quick&dirty example to show the principle (Mathematica source code below). As you can see, the DWT (discrete wavelet transform) of the Lena image is mostly zero, the DWT of the noise image is more or less pure noise. The DWT of lena + noise is the sum of the two DWTs (i.e. DWT is a linear transform). Picking the largest N values in this DWT and reconstructing the image from those effectively removes the noise while preserving edges, but it also removes the structures that are not well represented by this specific wavelet (CDF), namely textures and diagonal edges:
Mathematica Code:
img = ImageResize[ExampleData[{"TestImage", "Lena"}], 256]
wf = CDFWavelet[];
noise = Image[
RandomVariate[NormalDistribution[], ImageDimensions[img]]*0.05 +
0.5];
noisyImg = Image[ImageData[img] + ImageData[noise] - 0.5];
Grid[
{
{Image[img, ImageSize -> 256], " DWT => ",
Image[WaveletImagePlot[DiscreteWaveletTransform[img, wf]],
ImageSize -> 256]},
{Image[noise, ImageSize -> 256], " DWT => ",
Image[WaveletImagePlot[DiscreteWaveletTransform[noise, wf]],
ImageSize -> 256]},
{Image[noisyImg, ImageSize -> 256], " DWT => ",
Image[WaveletImagePlot[DiscreteWaveletTransform[noisyImg, wf]],
ImageSize -> 256]},
{Image[noisyImg, ImageSize -> 256],
" Highest 5000 DWT coefficients => ",
Image[InverseWaveletTransform[
WaveletThreshold[
DiscreteWaveletTransform[noisyImg, wf], {"LargestCoefficients",
5000}]], ImageSize -> 256]}
}]
Upvotes: 1
Reputation: 1396
Wavelet transformation can help you in a similar way like Fourier transformation, by compression with reducing of quality, so some thin details and noise can disappear.
I suggest you to try Gaussian blur for filtering of monotonic noise from the image. In my case, it was more efficient than other approaches, including wavelet.
Upvotes: -1