www.gusucode.com > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比 > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比/BP神经网络的图像压缩/wavelets压缩/main.m

    clc;
clear all;
close all;
orimg=imread('lena.bmp');
imshow(orimg); 
title('原始图象'); 
orimage=double(orimg);
tImg=wavelet('2D D5',3,orimage,'sym');
tImage=uint8(tImg);
figure; 
imshow(tImage);title('压缩后图')
Img=zeros(512,512);
Img(1:256,1:256)=tImg(1:256,1:256);
[Image,sc,dmatrix]=double2uint(Img);
x=select(Image);
code=RLC(x);
%%%%%%%%%%%%%%%%%%%解码部分%%%%%%%%%%%%%%%%%%
Image=dec(code);
Image_r=uint2double(Image,sc,dmatrix);
IImg=wavelet('2D D5',-3,Image_r,'sym');
IImg=uint8(IImg);
figure;imshow(IImg);
title('恢复图象'); 
diff=orimg-IImg;%误差
figure;imshow(diff);title('两图相减后误差')
e=sum(sum(diff))/(sum(sum(orimg)));
total_infor=512*512;
[code_r,code_c]=size(code);
pp=(512*512)/code_c;
disp(['压缩前的图像信息大小为:',int2str(total_infor)]);
disp(['压缩后的图像信息大小为:',int2str(code_c*code_r)]);
disp(['压缩率为:',num2str(pp),':1']);
disp(['压缩误差为:',num2str(e)]);