一、数字图像的表示
一幅图像可以被定义为一个二维函数f(x,y),其中(x,y)是空间(平面)坐标,在任何坐标(x,y)处的幅度f被定义为图像在这一位置的亮度。
图像在x和y坐标以及在幅度变化上是连续的。要将这样的一幅图像转换成数字形式,要求对坐标和幅度进行数字化。将坐标值数字化称为取样,将幅值数字化称为量化。因此,当x、y分量及幅值f都是有限且离散的量时,我们称图像为数字图像。
1、坐标约定
取样和量化的结果都是实数矩阵。假设对一幅图像f(x,y)采样后,可得到一幅M行、N列的图像,我们称这幅图像大小是M x N。相应的值是离散的。为了符号清晰和方便可见,这些离散的坐标都取整数。
这里介绍两种方法表示数字图像。
一种是将图像的原点定义为(x,y)=(0,0)。图像中沿着第1行的下一坐标点(x,y)=(0,1)。符号(0,1)用来表示沿着第1行的第2个取样。图1-1显示这一坐标约定。注意x是从0到M-1的整数,y是从0到N-1的整数。
图1-1
另外一种是坐标原点为(x,y)=(1,1),如在matlab的图像处理工具箱中。这种约定如图1-2所示:
2、图像的矩阵表示
根据图1-1的坐标系统,我们可以得到数字图像的下列表示:
等式右边是定义的一幅数字图像。阵列中每个元素都被称为图像元素、图画元素或像素。以后,我们用图像(image)和像素(pixel)这两个术语表示数字图像及元素。
将数字图像表示成MATLAB矩阵:
二、数字图像像素的类(数据类型)和类型(主要基于matlab说明)
1、图像的数据类型
虽然使用的是整数坐标,但MATLAB中像素值(亮度)并未限制为整数。表2-1列出了MATLAB和图像处理工具箱为描述像素值而支持的各种类。表中前8项是数值型的数据类,第9项称为字符类,最后一项为逻辑类。
表2-1 MATLAB中用于图像处理的类,前8项是数值型的数据类,第9项是字符类,最后一项是逻辑类。MATLAB还支持int64和uint64,但工具箱不支持它们。
2、图像类型
工具箱支持4种图像类型:灰度图像,二值图像,索引图像,RGB图像。
2.1 灰度图像
灰度图像是数据矩阵,矩阵的值表示浓淡。当灰度图像的元素uint8或者uint16时,他们分别具有[0,255]或[0,65535]的整数值。如果图像是double类或single类,值就是浮点数。double或single灰度图像的值通常被归一化标定为[0,1]范围内,但也可以使用其他范围的值。
2.2 二值图像
二值图像在MATLAB中具有非常特殊的意义。二值图像是取值只有0和1的逻辑数组。因此,只包含0和1数据类的数组,比如uint8,在matlab中就不认为是二值图像。用logical函数可以把数值数组转换为二值图像。因此,如果A是0和1构成的数值数组,就可以使用下列语句创建逻辑数组B:
B=logical(A)。
在A中含有除了0或1之外的其他元素,使用logical函数就可以将所有非0值变换为逻辑1,而将所有0值变换为0。也可以使用关系和逻辑算账得到逻辑数组。
2.3 索引图像
2.4 RGB图像
---------------------