数字图像处理实验二图像数字化示例

1. 进入 Matlab 7.11 集成开发环境,并打开脚本编辑器。
2. 在脚本编辑器中编写一段程序,要求:
(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) 在另一个窗口中显示原始图像。
3. 将编写的程序保存为 Example2_1Digitize1.m
4. 运行该程序,并比较原始图像与各采样图像,以结果来检验采样的效果。
5. 修改原来的程序,将四幅图像放置在一个窗口中显示对比,并将结果保存在
Example2_1Digitize2.m 中。

%%Example2_1Digitize1
I=imread('greenleaf.jpg');%%读入图片
I=rgb2gray(I);%%图像灰度化

J=blkproc(I,[16 16],'uint8(ones(16).*mean2(x))');%%采样间隔16*16
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
imshow(J);
title('采样间隔16*16')

F=blkproc(I,[8 8],'uint8(ones(8).*mean2(x))');%%采样间隔8*8
figure(H);
imshow(F);
title('采样间隔8*8')

P=blkproc(I,[4 4],'uint8(ones(4).*mean2(x))');%%采样间隔4*4
figure(H);
imshow(P);
title('采样间隔4*4')

figure(H);
imshow(I);
title('原图像')
%%Example2_1Digitize2
I=imread('greenleaf.jpg');%%读入图片
I=rgb2gray(I);%%图像灰度化

J=blkproc(I,[16 16],'uint8(ones(16).*mean2(x))');%%采样间隔16*16
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(221);
imshow(J);
title('采样间隔16*16')

F=blkproc(I,[8 8],'uint8(ones(8).*mean2(x))');%%采样间隔8*8
subplot(222);
imshow(F);
title('采样间隔8*8')

P=blkproc(I,[4 4],'uint8(ones(4).*mean2(x))');%%采样间隔4*4
subplot(223);
imshow(P);
title('采样间隔4*4')

subplot(224);
imshow(I);
title('原图像')

 

posted @   放氮气的蜗牛  阅读(61)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示