真彩色图像小波分解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值