0
$\begingroup$

I am studying wavelet theory by myself and hope to use wavelet to denoise images. I write one matlab program to watch denoised image.

Gray = ones(512, 512, 'uint8');
Gray = Gray.*128;
Gray = imnoise(Gray, 'gaussian', 0, 0.01);
[cA1, cH1, cV1, cD1] = dwt2(Gray,  'db1');
[cA2, cH2, cV2, cD2] = dwt2(cA1/2, 'db1');
[cA3, cH3, cV3, cD3] = dwt2(cA2/2, 'db1');
[cA4, cH4, cV4, cD4] = dwt2(cA3/2, 'db1');
[cA5, cH5, cV5, cD5] = dwt2(cA4/2, 'db1');
figure; imshow(cA1/2, [0, 255]);
figure; ismhow(cA2/2, [0, 255]);
figure; ismhow(cA3/2, [0, 255]);
figure; ismhow(cA4/2, [0, 255]);
figure; ismhow(cA5/2, [0, 255]);

I find cA3 contains a lot of noise even if three decompositions have been performed. If I increase noise level, I need to perform more decomposition to obtain one smooth image in the approximation coefficients. If number of wavelet decomposition level is big, modifications of detail coefficients of high decomposition level will affect a lot of pixels and edges may be smoothed. I try to change wavelet family,but the problem still occurs. By the way, the function dwt2 seems to magnify the values of approximation coefficients by 2. Why does dwt2 behave like that?

$\endgroup$
  • $\begingroup$ Common wavelet denoising methods work by performing the wavelet transform for multiple scales, setting small coefficients to 0, then reconstructing the original image. All you code is doing here is displaying the low pass component of each scale of the wavelet decomposition. $\endgroup$ – geometrikal Sep 6 '15 at 15:16
  • $\begingroup$ Thanks. I understand wavelet denoising process. My question is that how many decompositions is requirement if one noisy image is given. What factors will determine the number of decompositions? $\endgroup$ – Jogging Song Sep 7 '15 at 0:54
  • $\begingroup$ It depends on the image I guess, but I find that as you go up in scale (more low pass) the SNR goes down. I'm guessing that at some scale the noise is so low that all of the coefficients are above the noise value and so none get attenuated. It would therefore not make sense to go past this scale. That is just a guess though. In my work I use 4 scales for 256 x 256 image and 5 for a 512 x 512 image... $\endgroup$ – geometrikal Sep 7 '15 at 1:22
  • $\begingroup$ If 5 scales are used for a 512 x 512 image, regions with size of 32x32 will become one pixel. If the coefficients are shrinked at highest scale, it will affect 1024 pixels at the original scale. If edges are contained in the 32x32 regions, edges may be smoothed. Does that happen? $\endgroup$ – Jogging Song Sep 7 '15 at 2:05
  • $\begingroup$ not really, because those 32 x 32 parts contain the low frequency part of the edge, all the high frequency stuff is in the previous scales. $\endgroup$ – geometrikal Sep 7 '15 at 5:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.