clc;clear;
a=imread('mm.jpg');
figure,imshow(a);
map=colormap;
nbcol=size(map,1);
R=double(a(:,:,1)); % 真彩色图像的三个分量转换成double 格式
G=double(a(:,:,2));
B=double(a(:,:,3));
tic;
wname='db1'; % 选取的小波
t1=[];
n=2;
[c_R,s_R]=wavedec2(R,n,wname); %对图像的三个分量,分别进行二维小波多级分解
[c_G,s_G]=wavedec2(G,n,wname);
[c_B,s_B]=wavedec2(B,n,wname);
for i=1:n
ca_R=appcoef2(c_R,s_R,wname,i);%提取近似系数
ca_G=appcoef2(c_G,s_G,wname,i);
ca_B=appcoef2(c_B,s_B,wname,i);
ca_R=mat2gray(ca_R);% 归一化
ca_G=mat2gray(ca_G);
ca_B=mat2gray(ca_B);
Y=cat(3,ca_R,ca_G,ca_B);
figure,imshow(Y);
t1(end+1)=toc;
end
% 或者用dwt2 函数进行一步分解
% [ca_R,ch_R,cv_R,cd_R]=dwt2(R,wname); % [c,s]=wavedec2(R,1,wname);
% [ca_G,ch_G,cv_G,cd_G]=dwt2(G,wname);
% [ca_B,ch_B,cv_B,cd_B]=dwt2(B,wname);
% ca_R=mat2gray(ca_R);
% ca_G=mat2gray(ca_G);
% ca_B=mat2gray(ca_B);
% Y=cat(3,ca_R,ca_G,ca_B);
% figure,imshow(Y);
% t1(end+1)=toc;
t2=[];
tic;
for n=1:2
f1(:,:,1)=haarcolor(R,n);
f1(:,:,2)=ha
真彩色图像小波分解
最新推荐文章于 2025-06-27 14:30:45 发布