图形图像-正交小波变换

例如:
步骤:

1、构造函数DWT

%  程序作者:沙威,香港大学电气电子工程学系,[email protected]

%  构造正交小波变换矩阵,图像大小N*N,N=2^P,P是整数。

function ww=DWT(N)
[h,g]=wfilters('haar','d');      %  分解低通和高通滤波器
% N=256;                           %  矩阵维数(大小为2的整数幂次)
L=length(h);                       %  滤波器长度
rank_max=log2(N);                  %  最大层数
rank_min=double(int8(log2(L)))+1+3;  %  最小层数
ww=1;   %  预处理矩阵
%  矩阵构造
for jj=rank_min:rank_max 
    nn=2^jj;
    %  构造向量
    p1_0=sparse([h,zeros(1,nn-L)]);
    p2_0=sparse([g,zeros(1,nn-L)]);
   
    %  向量圆周移位
    for ii=1:nn/2
        p1(ii,:)=circshift(p1_0',2*(ii-1))';
        p2(ii,:)=circshift(p2_0',2*(ii-1))';
    end
   
    %  构造正交矩阵
    w1=[p1;p2];
    mm=2^rank_max-length(w1);
    w=sparse([w1,zeros(length(w1),mm);zeros(mm,length(w1)),eye(mm,mm)]);
    ww=ww*w;
   
    clear p1;clear p2;
end
2、构造函数 DWT5
%  构造正交小波变换矩阵,图像大小N*N,N=2^P,P是整数。
function ww5=DWT5(N)
[h,g]=wfilters('haar','d');      %  分解低通和高通滤波器
% N=256;                           %  矩阵维数(大小为2的整数幂次)
L=length(h);                       %  滤波器长度
rank_max=log2(N);                  %  最大层数
rank_min=double(int8(log2(L)))+1+2;  %  最小层数
ww5=1;   %  预处理矩阵
%  矩阵构造
for jj=rank_min:rank_max
   
    nn=2^jj;
   
    %  构造向量
    p1_0=sparse([h,zeros(1,nn-L)]);
    p2_0=sparse([g,zeros(1,nn-L)]);
   
    %  向量圆周移位
    for ii=1:nn/2
        p1(ii,:)=circshift(p1_0',2*(ii-1))';
        p2(ii,:)=circshift(p2_0',2*(ii-1))';
    end
   
    %  构造正交矩阵
    w1=[p1;p2];
    mm=2^rank_max-length(w1);
    w=sparse([w1,zeros(length(w1),mm);zeros(mm,length(w1)),eye(mm,mm)]);
    ww5=ww5*w;
   
    clear p1;clear p2;
end
3、构建主程序xiao_bo_zhuanhuan

clear all;
A=imread('haar.bmp');
A=im2double(A);
C=A;
[m,n]=size(A);
[h,g]= wfilters('haar','d');
ww=DWT(m);
ww5=DWT5(m);
%四阶变换
    A=ww*A';
    B=A';
    B1=B;
    B=ww*B;
   
   %五阶变换
   C=ww5*C';
    D=C';
    D1=D;
    D=ww5*D;
   
figure(1);
imshow(B1);
title('四次 列变换结果');
figure(2);
imshow(B);
title('第四次变换结果');
figure(3);
imshow(D1);
title('五次 列变换结果');
figure(4);
imshow(D);
title('第五次变换结果');
结果如下:


    备注:函数DWT和DWT5中,红色标注的语句为图形变换的关键点,可以调整图形变换的次数。

猜你喜欢

转载自blog.csdn.net/jamin_liu_90/article/details/79834838