📄 main_spiht.m
字号:
function pic3=main_SPIHT(filename,ratio,level)
%
%
% 输入: filename为需要压缩图象的名称,该主程序仅能构处理256灰度图,读者可以自行改编为RGB处理;ratio为压缩比率;level为小波分解的级数
% 输出: pic3是解压完毕的图象数据矩阵
pic0=imread(filename); %读入图象
imagelength=length(pic0(1,:));%计算图象的长度,为了简化程序我们以长宽相等的图象为例
Npixels=imagelength^2*8; %存储原始图象所需总的位数
Ncode=Npixels/ratio; %按照压缩率计算所得存储目的图象所需的位数
wavename='coif5';
pic1=wavedec2_SPIHT(pic0,wavename,level);%对原始图象进行小波分解,并将小波系数进行排列
[mylineout,Linelength,Tout,ALR]=encode_SPIHT(pic1,Ncode); %对小波分解系数进行编码
pic1=decode_SPIHT(mylineout,Linelength,Tout,ALR); %%对编码后的小波系数进行解码
pic2=waverec2_SPIHT(pic1,wavename,level); %对解码后的小波系数进行小波反变换
pic3=uint8(pic2);
figure(1),imshow(pic0),title('原始未压缩的图象');
figure(2),imshow(pic3);title(['压缩图象,压缩比率: ',num2str(ratio)]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -