clear X = imread('wgxy.jpg'); I = rgb2gray(X); imshow(I); I=double(I); subplot(231); imshow(I,[]); title('原始图像'); axis square; disp('压缩前图像大小字节'); whos('I'); [c,s] = wavedec2(I,3,'bior3.7'); ca1 = appcoef2(c,s,'bior3.7',1); ch1 = detcoef2('h',c,s,1); cv1 = detcoef2('v',c,s,1); cd1 = detcoef2('d',c,s,1); a1 = wrcoef2('a',c,s,'bior3.7',1); h1 = wrcoef2('h',c,s,'bior3.7',1); v1 = wrcoef2('v',c,s,'bior3.7',1); d1 = wrcoef2('d',c,s,'bior3.7',1); c1=[a1,h1;v1,d1]; subplot(232); imshow(c1,[]); axis square; title('分解后低频和高频信息'); ca1 = appcoef2(c,s,'bior3.7',1); ca1 = wcodemat(ca1,500,'mat',0); a11 = wrcoef2('a',c,s,'bior3.7',1); subplot(233); imshow(a11,[]); axis square; title('第一次压缩图像'); disp('第一次压缩图像字节大小'); whos('ca1'); subplot(234); ca2 = appcoef2(c,s,'bior3.7',2); ca2 = wcodemat(ca2,500,'mat',0); a22 = wrcoef2('a',c,s,'bior3.7',2); imshow(a22,[]); axis square; title('第二次压缩图像'); disp('第二次压缩图像字节大小'); whos('ca2'); subplot(235); ca3 = appcoef2(c,s,'bior3.7',3); ca3 = wcodemat(ca3,500,'mat',0); a33 = wrcoef2('a',c,s,'bior3.7',3); imshow(a33,[]); axis square; title('第三次压缩图像'); disp('第三次压缩图像字节大小'); whos('ca3');这个程序的图像每一个都单独显示,怎么写程序
时间: 2023-12-04 14:02:38 浏览: 57
这个程序通过 subplot 函数将多个小图像放在一个大图像中进行显示,具体步骤如下:
1. 使用 imshow 函数显示原始图像 I,以及分解后的低频和高频信息 c1;
2. 使用 subplot 函数分别创建 3 行 2 列的网格,将每个小图像放到对应的网格中;
3. 在网格的第 1 行第 1 列显示原始图像 I;
4. 在网格的第 1 行第 2 列显示分解后的低频和高频信息 c1;
5. 在网格的第 1 行第 3 列显示第一次压缩后的图像 ca1,并通过 whos 函数显示其字节大小;
6. 在网格的第 2 行第 1 列显示第二次压缩后的图像 ca2,并通过 whos 函数显示其字节大小;
7. 在网格的第 2 行第 2 列显示第三次压缩后的图像 ca3,并通过 whos 函数显示其字节大小;
8. 在网格的第 3 行第 1 列、第 2 列、第 3 列分别显示第一次、第二次、第三次压缩后的低频信息 a1、a2、a3。
下面是代码实现:
```
clear X = imread('wgxy.jpg');
I = rgb2gray(X);
I=double(I);
subplot(3,3,1);
imshow(I,[]);
title('原始图像');
axis square;
disp('压缩前图像大小字节');
whos('I');
[c,s] = wavedec2(I,3,'bior3.7');
ca1 = appcoef2(c,s,'bior3.7',1);
ch1 = detcoef2('h',c,s,1);
cv1 = detcoef2('v',c,s,1);
cd1 = detcoef2('d',c,s,1);
a1 = wrcoef2('a',c,s,'bior3.7',1);
h1 = wrcoef2('h',c,s,'bior3.7',1);
v1 = wrcoef2('v',c,s,'bior3.7',1);
d1 = wrcoef2('d',c,s,'bior3.7',1);
c1=[a1,h1;v1,d1];
subplot(3,3,2);
imshow(c1,[]);
title('分解后低频和高频信息');
axis square;
ca1 = appcoef2(c,s,'bior3.7',1);
ca1 = wcodemat(ca1,500,'mat',0);
a11 = wrcoef2('a',c,s,'bior3.7',1);
subplot(3,3,3);
imshow(a11,[]);
title('第一次压缩图像');
disp('第一次压缩图像字节大小');
whos('ca1');
subplot(3,3,4);
ca2 = appcoef2(c,s,'bior3.7',2);
ca2 = wcodemat(ca2,500,'mat',0);
a22 = wrcoef2('a',c,s,'bior3.7',2);
imshow(a22,[]);
title('第二次压缩图像');
disp('第二次压缩图像字节大小');
whos('ca2');
subplot(3,3,5);
ca3 = appcoef2(c,s,'bior3.7',3);
ca3 = wcodemat(ca3,500,'mat',0);
a33 = wrcoef2('a',c,s,'bior3.7',3);
imshow(a33,[]);
title('第三次压缩图像');
disp('第三次压缩图像字节大小');
whos('ca3');
subplot(3,3,6);
imshow(a11,[]);
title('第一次压缩后低频信息');
axis square;
subplot(3,3,7);
imshow(a22,[]);
title('第二次压缩后低频信息');
axis square;
subplot(3,3,8);
imshow(a33,[]);
title('第三次压缩后低频信息');
axis square;
```
阅读全文