- 进入 Matlab 7.11 集成开发环境,并打开脚本编辑器。
- 在脚本编辑器中编写一段程序,要求:
(1) 读入存放在 lena.jpg 中的原始图像,将其假象为一幅连续图像;
(2) 以采样间隔 (16, 16) 对原始图像进行采样,要求采样点的值为原图像 16 × 16 块的均值,像点大小为原来的 16 × 16 倍;这样的采样要求就意味着对原始图像进行 16 × 16 的块处理,且用 uint8 函数对块均值取整量化后,取代块中所有原像素的值;
(3) 显示该采样图像;
(4) 以采样间隔 (8, 8) 对原始图像进行采样,要求采样点的值为原图像 8 × 8块的均值,像点大小为原来的 8 × 8 倍;
(5) 在另一个窗口中显示该采样图像;
(6) 以采样间隔 (4, 4) 对原始图像进行采样,要求采样点的值为原图像 4 × 4块的均值,像点大小为原来的 4 × 4 倍;
(7) 在另一个窗口中显示该采样图像;
(8) 在另一个窗口中显示原始图像。
- 将编写的程序保存为 Example2_1Digitize1.m 。
- 运行该程序,并比较原始图像与各采样图像,以结果来检验采样的效果。
- 修改原来的程序,将四幅图像放置在一个窗口中显示对比,并将结果保存在
I=imread('greenleaf.jpg');
I=rgb2gray(I);
J=blkproc(I,[16 16],'uint8(ones(16).*mean2(x))');
H.color=[1 1 1];
figure(H);
imshow(J);
title('采样间隔16*16')
F=blkproc(I,[8 8],'uint8(ones(8).*mean2(x))');
figure(H);
imshow(F);
title('采样间隔8*8')
P=blkproc(I,[4 4],'uint8(ones(4).*mean2(x))');
figure(H);
imshow(P);
title('采样间隔4*4')
figure(H);
imshow(I);
title('原图像')
I=imread('greenleaf.jpg');
I=rgb2gray(I);
J=blkproc(I,[16 16],'uint8(ones(16).*mean2(x))');
H.color=[1 1 1];
figure(H);
subplot(221);
imshow(J);
title('采样间隔16*16')
F=blkproc(I,[8 8],'uint8(ones(8).*mean2(x))');
subplot(222);
imshow(F);
title('采样间隔8*8')
P=blkproc(I,[4 4],'uint8(ones(4).*mean2(x))');
subplot(223);
imshow(P);
title('采样间隔4*4')
subplot(224);
imshow(I);
title('原图像')