DWT image compression using linear algebra

조회 수: 1 (최근 30일)
Yasmin Tamimi
Yasmin Tamimi 2016년 6월 28일
Hi All,
I'm performing a DWT image compression on the cameraman image according to the following equation: Compressed image = H * original image * H^T; where H is the transformation matrix and H^T is its transpose. The operation can be divided into two steps: the first part (Row = H * original image) computes the row transformation and then (Column = Row*H^T); where the column transformed image is the compressed one.
Original_image = imread('cameraman.tif');
Image_double = im2double(Original_image); % Convert it to double
figure;imshow(Image_double);
n=256;
H = ConstructHaarWaveletTransformationMatrix(n); % Transformation matrix from matlab file exchange
Compressed = H*Image_double*H'; %Haar wavelet transformation
C1 = H*Image_double; % row transformation
C2 = C1*H'; % column transformation
The output from the row transformation gives me values larger than one and smaller than zero, but I still need the range to be between zero and one as the original image. So here's what I did:
C11 = C1 + (-min(C1(:))*ones(n,n)); % shift the values by the minimum
C11 = C11/max(C11(:)); % scale
C22 = C11*H';
Unfortunately when I decompress the image according to the following: Decompressed_image = H' * C22 *H; the image is distorted with 0.0067 ssim.
How I can get back my clear image and remove the distortion/ noise. Shall I perform some sort of filtering or shall I subtract something from the decompressed image?
Thanks a lot in advance.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Wavelet Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by