DENOISEDEMO

denoising demo using shearlets

Contents

Description

  Denoising demo using shearlet transform

Copyright

Copyright (C) 2011. Xiaosheng Zhuang, University of Osnabrueck

clc
clear all;
close all;

Reading image

1. image bridge img = imread('bridge.jpg'); img = img(89:600,1:512,:); 2. image barbara

img  = imread('barbara.gif');
img1 = double(img(:,:,1));
%img = rgb2gray(img);
%img = im2double(img);
%img1= img1(1:2:512,1:2:512);
%imshow(uint8(img1));
% size(img1)

generating a noisy image

sigma = 30;   % noise level
noise = randn(size(img1))*sigma; % Gaussian noise
noisyImg = img1+noise;

Setting parameters

R      = 2;                % oversammpling rate R = 2, 4, 8, 16;
beta   = 2;                % scaling factor beta = 2, 4
Choice = 1;                % basis Choice, see GENERATEW
CG     = 0;                % Use CG or not
err    = 1e-5;             % CG control error
its    = 10;               % CG maximal iterations
thr    = 0.01*sigma;       % setting threshold

Denoising

tic
recImg = dshden(noisyImg,thr,R,beta,Choice,0,CG,err,its);
toc
Forward Shearlet Transform...
ppFT ...
Weighting ...
Windowing ...
Decomposition of high-frequency part...
scale = 9, Number of Tiles = 33
scale = 8, Number of Tiles = 33
scale = 7, Number of Tiles = 17
scale = 6, Number of Tiles = 17
scale = 5, Number of Tiles = 9
scale = 4, Number of Tiles = 9
scale = 3, Number of Tiles = 5
scale = 2, Number of Tiles = 5
scale = 1, Number of Tiles = 3
scale = 0, Number of Tiles = 3
Decomposition of low frequency part...
Done!
Done with Forward Shearlet Transform!
Backward Shearlet Transform...
Adjoint Windowing...
Reconstruction from high-frequency part...
scale = 9, Number of Tiles = 33
scale = 8, Number of Tiles = 33
scale = 7, Number of Tiles = 17
scale = 6, Number of Tiles = 17
scale = 5, Number of Tiles = 9
scale = 4, Number of Tiles = 9
scale = 3, Number of Tiles = 5
scale = 2, Number of Tiles = 5
scale = 1, Number of Tiles = 3
scale = 0, Number of Tiles = 3
Reconstrucion from low frequency part...
Done!
Weighting...
AdjppFT...
Done with Backward Shearlet Transform!
Elapsed time is 4.030394 seconds.

dispay original image, noisy image, and denoised image

psnr1 = PSNR(img1,noisyImg);
figure(1), imshow(uint8(img1));
figure(2), imshow(uint8(noisyImg)); text(10,-15,['PSNR = ' num2str(psnr1)]);
psnr2 = PSNR(img1,real(recImg)) ;
figure(3),imshow(uint8(real(recImg)));text(10,-15,['PSNR = ' num2str(psnr2)]);