lwavedec2.m

来自「用提升方法实现小波任意级数分解」· M 代码 · 共 50 行

M
50
字号
function f_row=lwavedec2(image,N)
f=double(image);    %原始图像
T=N/2;   %子图像维数

%%%%%%%%正变换%%%%%%%%%%%%%%
%1.列变换
%A.分裂(奇偶分开)
f1=f([1:2:N-1],:); %奇数
f2=f([2:2:N],:);  %偶数
%f1(:,T+1)=f1(:,1); %补列
%f2(T+1,:)=f2(1,:); %补行
%B.预测
for i_hc=1:T;
    high_frequency_column(i_hc,:)=f1(i_hc,:)-f2(i_hc,:);
end;
%hign_frequency_column(T+1,:)=high_frequency_column(1,:);%补行
%C.更新
for i_lc=1:T
    low_frequency_column(i_lc,:)=f2(i_lc,:)+floor(high_frequency_column(i_lc,:)/2);
end;   
%D.合并
f_column([1:1:T],:)=low_frequency_column([1:T],:);
f_column([T+1:1:N],:)=high_frequency_column([1:T],:);

%figure(2)
%map=gray(256);
%subplot(1,2,1);imshow(uint8(f_column));colormap(map):title('列变换图像');
%%%%%%%%%%%%%%%%%%%%%%%%%
%2.行变换
%A.分裂(奇偶分开)
f1=f_column(:,[1:2:N-1]); %奇数
f2=f_column(:,[2:2:N]);  %偶数
%f2(:,T+1)=f2(:,1); %补行
%B.预测
for i_hr=1:T;
    high_frequency_row(:,i_hr)=f1(:,i_hr)-f2(:,i_hr);
end;
%high_frequency_row(:,T+1)=high_frequency_row(:,1);%补行
%C.更新
for i_lr=1:T;
    low_frequency_row(:,i_lr)=f2(:,i_lr)+floor(high_frequency_row(:,i_lr)/2);
end;
%D.合并
f_row(:,[1:1:T])=low_frequency_row(:,[1:T]);
f_row(:,[T+1:1:N])=high_frequency_row(:,[1:T]);


%map=gray(256);
%subplot(1,2,2);imshow(uint8(f_row));colormap(map);title('行变换图像');

⌨️ 快捷键说明

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