www.pudn.com > wavelet_transf.rar > wavelet.m
%WAVELET BASED COMPRESSION
%****************************
%removes all variables, globals, functions and
%MEX links(MATLAB loads and runs a different entry point symbol for C or Fortran MEX-files)
clear all;
% CLOSE ALL closes all the open figure windows.
close all;
%read the image
input_image1=imread('rice.tif');
%display input image
%add noise
input_image=imnoise(input_image1,'speckle',.01);
figure;
imshow(input_image);
%give the number of decomposition level which must be integer and should not exceed 3
n=input('enter the decomposition level');
%*****************************************************************************
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('haar');
% computes four filters associated with the orthogonal or biorthogonal
% wavelet named in the string 'wname'.
% The four output filters are:
% LO_D, the decomposition low-pass filter
% HI_D, the decomposition high-pass filter
% LO_R, the reconstruction low-pass filter
% HI_R, the reconstruction high-pass filter
% Available wavelet names 'wname' are:
% Daubechies: 'db1' or 'haar', 'db2', ... ,'db45'
%Coiflets : 'coif1', ... , 'coif5'
%Symlets : 'sym2' , ... , 'sym8', ... ,'sym45'
%Discrete Meyer wavelet: 'dmey'
%**********************************************************************
%wavedec2 - Multi-level 2-D wavelet decomposition.
[c,s]=wavedec2(input_image,n,Lo_D,Hi_D);
% gives the wavelet decomposition of the matrix input_image at level n, using the
% wavelet named in string 'wname' or low pass and high pass
% Outputs are the decomposition vector C and the
%corresponding bookkeeping matrix S.
disp(' the decomposition vector Output is');
disp(c);
%*************************************************************************************
%Thresholds for wavelet 2-D using Birge-Massart strategy.
[thr,nkeep] = wdcbm2(c,s,1.5,3*prod(s(1,:)));
% give level-dependent thresholds 'thr'and numbers of coefficients to be kept 'nkeep'
% for compression. 'thr' is obtained using a wavelet coefficients
%selection rule based on Birge-Massart strategy.
%disp('level-dependent thresholds');
%disp(thr);
%disp(' numbers of coefficients to be');
%disp(nkeep);
%***************************************************************************
%compression using wavelet packets.
[compressed_image,TREED,comp_ratio,PERFL2] =WPDENCMP(thr,'s',n,'haar','threshold',5,1);
disp('compression ratio in percentage');
disp(comp_ratio);
% returns a compressed version compressed_image of input
% signal 'thr' (2-D) obtained by wavelet packet coefficients thresholding.
% The additional output argument TREED is the
% wavelet packet best tree decomposition of compressed_image.
% PERFL2 and PERF0 are L^2 recovery and compression scores in percentages.
%Multi-level 2-D wavelet reconstruction.
re_ima1 = waverec2(c,s,'haar');
re_ima=uint8(re_ima1);
subplot(1,3,1);
imshow(input_image);
title('i/p image');
subplot(1,3,2);
imshow(compressed_image);
title('compressed image');
subplot(1,3,3);
imshow(re_ima);
title('reconstructed image');