读入 cameraman 图像, 在 Shannon 熵准则下利用 Daubechies 小波包三尺度压缩图像, 在一个窗口中显示原始图像和处理结果, 并给出MATLAB代码
时间: 2024-02-18 21:03:01 浏览: 153
基于小波包的图像压缩及matlab实现
5星 · 资源好评率100%
好的,以下是MATLAB代码,用于读入cameraman图像并使用Daubechies小波包三尺度表示进行压缩处理:
```matlab
% 读入cameraman图像
img = imread('cameraman.tif');
% Daubechies小波包三尺度的低通和高通滤波器系数
Lo_D = [0.0352 -0.0854 -0.1350 0.4599 0.8069 0.3327];
Hi_D = [-0.3327 0.8069 -0.4599 -0.1350 0.0854 0.0352];
Lo_R = Hi_D(end:-1:1);
Hi_R = Lo_D(end:-1:1);
% 压缩处理
[c,s] = wavedec2(img,3,Lo_D,Hi_D);
% 手动计算Shannon熵准则所需的阈值
sigma = median(abs(c)) / 0.6745;
thr = sigma * sqrt(2*log(numel(c)));
sorh = 's';
keepapp = 1;
xd = wdencmp('gbl',c,s,Lo_R,Hi_R,thr,sorh,keepapp);
% 显示原始图像和处理结果
figure;
subplot(1,2,1);
imshow(img);
title('原始图像');
subplot(1,2,2);
imshow(xd);
title('处理结果');
```
该代码将cameraman.tif图像读入并使用Daubechies小波包三尺度表示进行压缩处理。然后,根据Shannon熵准则进行压缩,并在一个窗口中显示原始图像和处理结果。
阅读全文