数字图像处理(一)——Matlab实现图像的采样及量化

一、实验目的

通过学习采样和量化获取图像的方法,将图像转换为数字形式并进行相应的采样和量化变换,观察图像的变化情况,加深对于采样和量化的理解,并学会如何将彩色图转化为灰度图和二值图。

二、实验内容

1、用matlab编写采样和量化程序,并对比分析不同空间和幅度分辨率的数字化图像的效果;
2、用matlab编写彩色图变灰度图和二值图;

图像的采样和量化原理如下:

灰度图像的采样和量化原理:
采样是把空域上或时域上连续的图像(模拟图像)转换成离散采样点(像素)集合(数字图像)的操作,这些值可以是均匀间隔也可以不是。采样越细,像素越小,越能精细地表现图像。
量化是把像素的灰度(浓淡)变换成离散的整数值的操作,用黑(0)白(255)两个数值(即2级)来表示,成为二值图像。量化越细致,灰度级数(浓淡层次)表现越丰富。

采样:

图像在空间上的离散化称为采样,在使用matlab对图像进行采样的过程中,首先用imread()函数将图像信息转化为矩阵信息进行保存,由于图像为RGB三色,所得到的信息是三维的,因此先使用rgb2gray()函数将图像转化为二维的灰度图,然后再进行采样。
在采样时,使用其他矩阵来对原始矩阵的值进行分间隔采样,将采样得到的新的信息保存在其他矩阵当中,例如I2=I1(1:2:end,1:2:end)即对原始矩阵行和列每隔1个点进行采样,同理进行其他点数的采样。

I=imread('a2.png');%读取图像信息
subplot(231);
I1=rgb2gray(I);%将三维的彩色图像转化为二维的灰度图,否则采样时会出现RGB三个方向上的三张采样图
imshow(I1)
title('原始图像'); %输出该图像

I2=I1(1:2:end,1:2:end);    %行列方向分别从第一位开始采样,
                           %每隔一位采样一个点,产生一个新的矩阵
subplot(232);    
imshow(I2)
title('采样图像(128*128)');
 
I3=I1(1:4:end,1:4:end);    
subplot(233)
imshow(I3)
title('采样图像(64*64)');
 
I4=I1(1:8:end,1:8:end); 	  
subplot(234);
imshow(I4)
title('采样图像(32*32)');

I5=I1(1:16:end,1:16:end);
subplot(235);
imshow(I5)
title('采样图像(16*16)');

I6=I1(1:32:end,1:32:end);
subplot(236);
imshow(I6)
title('采样图像(8*8)');

采样结果如下:
**采样结果如下:**
通过比较可以清楚的发现通过对不同点数的采样,所得到的图像有很大的差距,随着采样点数的不断减少,所呈现出的图像越来越模糊,最后趋向于马赛克,这也表明采样点数越多,图像质量越好,因此如果图像含有丰富的细节,则要尽可能多的选取采样点使得图像质量更好。

量化:

把采样得到的各像素的灰度值从模拟量到离散量的转换称为图像灰度的量化。在matlab量化图像的过程中,由于图像为RGB三色,所得到的信息是三维的,因此也要先使用rgb2gray()函数将图像转化为二维的灰度图,然后再进行量化,调用histeq(,)函数来改变图像的灰度级数来实现不同量化级数下的图像量化。


I=imread('a2.png');%读取图像信息
subplot(231);
I=rgb2gray(I);%将三维的彩色图像转化为二维的灰度图,否则采样时会出现RGB三个方向上的三张采样图
imshow(I)
title('原始图像(256色)'); %输出该图像

I1=histeq(I,64);%调用histeq函数将图像的灰度级数改为64
I2=histeq(I,32);
I3=histeq(I,16);
I4=histeq(I,4);
I5=histeq(I,2);
subplot(2,3,2),imshow(I1),title('量化图像(64色)');
subplot(2,3,3),imshow(I2),title('量化图像(32色)');
subplot(2,3,4),imshow(I3),title('量化图像(16色)');
subplot(2,3,5),imshow(I4),title('量化图像(4色)');
subplot(2,3,6),imshow(I5),title('量化图像(2色)');

量化结果如下

通过不同量化级数下的对比分析可以发现,随着量化越来越低,图片的细节越来越不清晰不细致,图片的效果也越来越差,当为二值图像时,图像出现假轮廓。因此,当图像色彩变化较缓,细节很少时,可以采用细量化来使图像不会出现假轮廓。

彩色图像变灰度图

调用函数可直接转换

I=imread('a2.png');%读取图像信息
subplot(131);
imshow(I)
title('原始图像'); %输出该图像

I=rgb2gray(I);%将三维的彩色图像转化为二维的灰度图,否则采样时会出现RGB三个方向上的三张采样图
subplot(132);
imshow(I)
title('灰度图'); %输出该图像

I1=histeq(I,2);
subplot(133);
imshow(I1)
title('二值图'); %输出该图像

实验结果如下
在这里插入图片描述
由实验结果可以看出,当把图像变为二值图后,每个像素点均为黑色或者白色的图像。二值图像一般用来描述字符图像,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能展示其边缘信息,图像内部的纹理特征表现不明显。

  • 36
    点赞
  • 219
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值