作业帮 > 综合 > 作业

图像三层小波分解这样程序对吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 09:54:52
图像三层小波分解这样程序对吗?
I=imread('barbara.bmp'); %读取原始图像
subplot(223);
imshow(I);
title('原始图像');
[c,s]=wavedec2(I,3,'sym8');
sizec=size(c);
disp('第三次压缩图像大小');
ca3=appcoef2(c,s,'sym8',3);
ca3=wcodemat(ca3,400,'mat',0);
ca3=0.625*ca3;
subplot(224)
ca3=uint8(ca3);
imshow(ca3)
title('第三次压缩的图像');
whos('ca3')
只有第三阶逼近的系数,没有其它阶次,而且没用将系数重构得到图像,不是典型性分解程序,但也没有什么错误,不知道是否符合你的要求.
再问: 如果再对第三阶低频系数做DCT变换该怎么编程呢?
再答: 那先不要使用wcodemat函数编码后的结果,直接使用原始第三层逼近低频系数, ca3=appcoef2(c,s,'sym8',3); b3=dct2(ca3); imshow(log(abs(b3)),[]); colormap(jet(64)); colorbar; DCT变换通常会有变换系数近似于0的情况,去掉它们对于重构图像并没有太多影响,所以通常用于图像压缩。因为不知道你编程的意图,我这里没有写重构图像的语句,它也很简单用idct2函数就可,但仍然不知道你干嘛这么做。
再问: 我是要做基于DCT和DWT融合的数字水印算法,现在正在做水印的嵌入程序。谢谢你的讲解啦