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=mat
真彩色图像小波分解
最新推荐文章于 2024-09-07 14:20:54 发布
本文探讨了真彩色图像使用 haarcolor 函数进行小波分解的过程,指出该函数效率不高的原因,并提出改进方案,包括避免重复计算、优化数据处理方式等。通过与 MATLAB 内置 wavedec2 函数的比较,发现了两者在结果维度上的差异。作者提出,将优化后的 haarcolor 函数与分解得到的近似图像结合,可以提高二次分解的效率,潜在应用于网络头像的压缩和显示,如使用图像的二级或三级近似进行存储和展示。
摘要由CSDN通过智能技术生成