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

📄 nstdhaardemo.m

📁 二维非标准haar小波规格化分解后图像重构程序
💻 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 + -