图像采样、量化、编码(二十七)

采样;就是把一幅连续图像在空间上分割成M×N个网格,每个网格用一亮度值来表示。一个网格称为一个像素。M×N的取值满足采样定理。

https://img-blog.csdn.net/20171222105203223?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenFod2FuZG8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
量化;就是把采样点上对应的亮度连续变化区间转换为单个特定数码的过程。量化后,图像就被表示成一个整数矩阵。每个像素具有两个属性:位置和灰度。位置由行、列表示。灰度表示该像素位置上亮暗程度的整数。此数字矩阵M×N就作为计算机处理的对象了。灰度级一般为0-255(8bit量化)。
量化示意图(a)为量化过程(b)为量化为8bit
 

量化示意图(a)为量化过程(b)为量化为8bit

在现实生活中,采集到的图像都需要经过离散化变成数字图像后才能被计算机识别和处理。

二维图像的成像过程
二维图像的成像过程
采样又可分为均匀采样和非均匀采样。
图像均匀采样量化——像素灰度值在黑白范围较均匀分布的图像。
图像非均匀采样量化——对图像中像素灰度值频繁出现的灰度值范围,量化间隔取小一些,而对那些像素灰度值极少出现的范围,则量化间隔取大一些。
不同分辨率下图像的显示情况
编程处理

MATLAB对图像进行采样处理

 1 %2.1图像的采样处理
 2 f1=imread('C:\Users\Administrator\Desktop\lenagray.jpg');
 3 figure(1);
 4 subplot(2,2,1);
 5 imshow(f1)
 6 title('512*512')
 7 f2=f1(1:2:end,1:2:end);%每2位采集1位
 8 subplot(2,2,2)
 9 imshow(f2)
10 title('256*256')
11 f3=f1(1:4:end,1:4:end);%每4位采集1位
12 subplot(2,2,3)
13 imshow(f3)
14 title('128*128')
15 f4=f1(1:8:end,1:8:end);%每8位采集1位
16 subplot(2,2,4)
17 imshow(f4)
18 title('64*64')

结果截图

MATLAB对图像进行量化处理

%2.2图像量化
figure(2);
f64=histeq(f1,64);%将图像的灰度级数改为64
subplot(2,2,1);
imshow(f64)
title('64*64')
f32=histeq(f2,32);%将图像的灰度级数改为32
subplot(2,2,2);
imshow(f32)
title('32*32')
f16=histeq(f3,16);%将图像的灰度级数改为16
subplot(2,2,3);
imshow(f16)
title('16*16')
f8=histeq(f4,8);%将图像的灰度级数改为8
subplot(2,2,4);
imshow(f8)
title('8*8')

结果截图

*************************************************************************************

                                                 简单理解图像采样、量化、编码

一般的,将连续的模拟信号放置在 (x,y) 直角坐标系中,x 轴表示时间,y 轴表示信号的幅度。

1.采样
 即是在时间轴上,也就是 x 轴上,抽出 X 个点。比如说采样率,就反映了在一秒钟的刻度上,均匀的抽取多少个点。也就是,采样率是针对 x 轴,针对时间的。

2.量化
  即是在幅度轴上,也就是 y 轴上,按特定的单位长度,量取 Y 个这样的长度。比如说,规定 2 毫米为一个单位长度,按照这样的单位长度,我们可以在 y 轴上,从 y = 0 开始,依次量取 Y 个这样的长度,如果信号最高点超出了这个 (Y x 2毫米)的 范围,就丢掉,或者使用算法,叠加到小于等于(Y x 2毫米)的范围。一般的,这个 Y 的值(注意,不是 Y x 2毫米),常取用 8/16/32/256 这些值,个人理解上,这就是我们常说的位深度,比如位深度为8,位深度为256等等。简而言之,量化和位深度可以粗暴的认为,就是一个人的本名和别名,故人的字、名、号。

进一步理解量化:可以想象成,在 (x,y)坐标系,x轴上,有 X 根线; y轴上有 Y 根线,则整个坐标系就变成了一页小学生的方格作文本纸面。沿着 y 轴从0开始数,最多数256个方格,就表示当前位深度为 256。

(还有一种理解方法,比如规定信号最大幅度,在y轴上不超100毫米,然后把这100毫米等分,比如等分成8份,或者16份,或者32份,或者256份,划分的等份越多,就量化的越细。比如拿颜色来说,所谓的位深度越高,则存储的颜色变量就越多,就是这么个道理)

3.编码
则就是在量化的基础上,x 轴上的每个抽取点,对应的 y 值是多少。如果位深度为 256,则 y 值最大不超过 256.

当然,以上纯属粗暴、简单的理解,只是一个理解上的方便法门。实际应用中的采样、量化、编码会因为实际需要,搞的非常复杂,尤其是在编码阶段,会使用各种算法来进行编码。相关术语,也是非常的专业、准确。
*************************************************************************************

猜你喜欢

转载自blog.csdn.net/u010164190/article/details/123478657