資源簡介
利用小波變換對圖像進行分解與重構,謝謝!希望有所幫助
代碼片段和文件信息
%對一幅圖像I進行M尺度的小波變換
I=imread(‘Fig7.01.jpg‘);
M=3;%?M----小波變換的尺度
I1=double(I);
[mn]=size(I);
Iout=zeros(size(I));
W1=zeros(size(I));
%=============Haar?wavelete?transform==================
W1=I1;
for?k=1:M
for?i=1:n
????W1(:i)=selfdwt(W1(:i)1);%對列進行變換
end
for?i=1:m
????W1(i:)=selfdwt(W1(i:)1);%對行進行變換
end
for?i=1:m
????for?j=1:n
????????Iout(ij)=W1(ij);
????end
end
m=m/2;
n=n/2;
W1=zeros(mn);
for?i=1:m
????for?j=1:m
????????W1(ij)=Iout(ij);
????end
end
end
%======================================================
%========================scaling=======================
[mn]=size(I);
min=0;
for?i=1:m
????for?j=1:n
????????if(Iout(ij) ???????????min=Iout(ij);
???????end
???end
end
Iout1=(Iout+abs(min))*.5;
max=255;
for?i=1:m
????for?j=1:n
????????if(Iout1(ij)>max)
????????????max=Iout1(ij);
????????end
????end
end
if(max>255)
????Iout1=(Iout1*(255/max)).*2;
end
%======================================================
Iout1(:256)=255;
Iout1(256:)=255;
Iout1(1:256128)=255;
Iout1(1281:256)=255;
Iout1(1:12864)=255;
Iout1(641:128)=255;
figure
imshow(uint8(Iout.*28))
title(‘uncaling‘)
figure
imshow(uint8(Iout1))
title(‘after?scaling‘)
Iout2=imidwt2(IoutM);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1286??2005-06-01?12:33??新建文件夾\imdwt1.m
?????文件????????666??2005-06-01?12:33??新建文件夾\imidwt2.m
?????文件???????1055??2005-05-28?21:22??新建文件夾\selfdwt.m
?????文件???????1731??2005-05-31?15:42??新建文件夾\selfidwt.m
?????目錄??????????0??2005-06-12?13:20??新建文件夾
-----------?---------??----------?-----??----
?????????????????4738????????????????????5
- 上一篇:MAX5417底層代碼和資料
- 下一篇:linux掃雷游戲代碼
評論
共有 條評論