⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nstdhaardemo.m

📁 用matlab编写的压缩解压缩程序
💻 M
字号:
function nstdhaardemo(imgname)
%  nstdhaardemo haar小波三级非标准规格化分解与重构演示程序
%  nstdhaardemo(imgname)
%  本程序作用:载入图像文件,显示图像3级非标准haar小波规格化分解与重构过程
%  输入: imgname   ----要装载的图像名称(真彩色,灰度图,索引图)
%  缺省图像为color256.png

if nargin==0
    imgname='color256.png';
end
%  读入的X中含有被装载的图像信号,map中含有被装载的color
[X,map] = imread(imgname);
if ndims(X)==3
    imgcolor=1;
else
    imgcolor=0;
end
X=double(X);
h=size(X,1);

%画出原始图像
figure(1);
subplot(4,4,1);imshow(uint8(X),map);
title(' haar小波3级非标准规格化分解过程');
xlabel('原始图像');
axis square

position=2;
A=X;
%依次序画出3级非标准规格化分解过程中对应的行变换,列变换图像
for i=1:3
    A011=decompose(A,imgcolor,1,1,h);
    subplot(4,4,position);imshow(uint8(A011),map);axis square
    A012=decompose(A011,imgcolor,1,2,h);
    subplot(4,4,position+4);imshow(uint8(A012),map);axis square
    xlabel(strcat(int2str(i),'级分解图像'));
    A=A012;
    h=h/2;
    position=position+5;
end
xlabel('haar小波3级非标准规格化分解图象');

%画出3级分解图像
figure(2);
subplot(4,4,1);imshow(uint8(A),map);
title('haar小波3级非标准规格化分解重构过程');
xlabel('3级分解图像');
axis square
position=2;

%依次序画出3级非标准规格化分解后重构过程中对应的行变换,列变换图像
if imgcolor
    h=size(A(:,:,1),1)/4;
else
    h=size(A,1)/4;
end
for i=1:3
    RX11=reconstruct(A,imgcolor,1,1,h);
    subplot(4,4,position);imshow(uint8(RX11),map);axis square
    RX12=reconstruct(RX11,imgcolor,1,2,h);
    subplot(4,4,position+4);imshow(uint8(RX12),map);axis square
    xlabel(strcat(int2str(3-i),'级重构图像'));
    A=RX12;
    h=h*2;
    position=position+5;
end
xlabel('haar小波3级非标准分解后重构图像');
figure(1);

%--------------------------------------------------
%        内部程序
%--------------------------------------------------
function C=decompose(A,imgcolor,level,roworcol,h)

if imgcolor
    Ar=A(:,:,1);
    Ag=A(:,:,2);
    Ab=A(:,:,3);
    Cr=nstdhaardec2(Ar,level,roworcol,h);
    Cg=nstdhaardec2(Ag,level,roworcol,h);
    Cb=nstdhaardec2(Ab,level,roworcol,h);
    C(:,:,1)=Cr;
    C(:,:,2)=Cg;
    C(:,:,3)=Cb;
else
    C=nstdhaardec2(A,level,roworcol,h);
end

%--------------------------------------------------
%        内部程序
%--------------------------------------------------
function C=reconstruct(A,imgcolor,level,roworcol,h)

if imgcolor
    Ar=A(:,:,1);
    Ag=A(:,:,2);
    Ab=A(:,:,3);
    Cr=nstdhaarrec2(Ar,level,roworcol,h);
    Cg=nstdhaarrec2(Ag,level,roworcol,h);
    Cb=nstdhaarrec2(Ab,level,roworcol,h);
    C(:,:,1)=Cr;
    C(:,:,2)=Cg;
    C(:,:,3)=Cb;
else
    C=nstdhaarrec2(A,level,roworcol,h);
end
    
    
    
    

    



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -