1.1.3 数字图像文件

为了对数字图像文件进行正常存取,这里介绍数字图像文件的结构。尽管图像文件种类繁多,但其结构却很相似。

1.图像基本类型

为了更清楚地解释数字图像文件结构,下面先简单介绍一下数字图像按颜色的不同进行的基本分类。

(1)二值图像

二值图像的像素值仅由0、1两个值构成,“0”代表黑色,“1”代表白色。由于每一像素取值仅有0、l两种可能,所以计算机中二值图像像素的像素值通常用1个二进制位表示。

(2)16色图像

16色图像像素值的取值范围为[0,15]。每一个像素值由4个二进制位表示。实际上,像素值并不代表具体颜色,而是调色板中16种颜色的索引值。由于这类图像只能显示16种颜色,因此显示效果不是很好,现在只在图标等较少的场合中有应用。

(3)256色图像

256色图像像素值的取值范围为[0,255]。每一个像素值由8个二进制位表示。和16色图像一样,像素值也不代表具体颜色,而是调色板中256种颜色的索引值。和16色图像相比,由于这种图像可显示颜色更丰富,故显示效果明显改善。

256色图像更重要的一种应用格式是256灰度图像。256灰度图像实际上是256色图像的一个特例。其图像像素值的取值范围仍然是[0,255],但每一个数值代表一种灰度,“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。就文件格式而言,256灰度图像仍然采用256色图像的格式,只不过其调色板中256种颜色已由小到大定义成了不同灰度颜色。由于256灰度图像去除了颜色信息,因此,在很多图像分析场合,尤其是数字图像模式识别应用中较常用。

(4)真彩色图像

和上述各种图像不同,真彩色图像的像素值直接表示具体颜色,因此没有调色板。一般真彩色图像的每个像素值由3字节组成,分别表示红(R)、绿(G)、蓝(B)三原色的亮度值。组合在一起,真彩色图像共可以表示256×256×256=16777 216种,或16M种颜色。由于真彩色图像所能表示的颜色数量已经超过人眼所能分辨的颜色数量,因此,实际应用中认为真彩色图像的显示效果和数字化前的原始图像是一样的,这也是真彩色图像名称的由来。

2.图像文件结构

在计算机中,数据是以文件的形式存储在外存储器中,图像数据也不例外。图像文件就是以数字形式存储起来的图像。为了便于读写,图像数据一般以一定的格式存放。目前已知有几十种图像文件格式,它们虽各不相同,但都具有相似的特征。图像文件一般由文件头、像素数据和调色板数据等3部分组成。

(1)文件头

文件头用于存放图像基本信息,包括各种特征参数、像素数据与调色板数据在文件中的存放位置,以及文字注解等。文件头分固定格式及灵活格式两大类。前者如BMP、PCX文件等,其存储规定的参数,且数据在文件中的存储位置是固定的。后者如TIF文件,文件中除了规定的参数外,还可自行定义特征参数,数据在文件中的存储位置也不固定,且同一文件中还可存放多幅图像。还有一些格式介于两者之间,如GIF和TGA文件格式等。

(2)像素数据

像素数据以位图的形式存放,每个像素数据对应图像相应位置上的颜色值,具体颜色值的定义由调色板数据提供。像素数据有压缩和不压缩之分。压缩数据可以节省存储容量,但在存取时需进行压缩和解压缩处理,处理速度慢。不压缩的像素数据在不同格式的图像文件中的存储结构基本相同。

(3)调色板数据

调色板数据是指二值、16色和256色图像的色调数据,一般放在文件头中。上述3种图像显示时需要调色板数据。真彩色图像的像素数据中已有颜色分量,故不再需要调色板数据。

3.图像文件常用参数

在图像的显示控制中最重要的参数为图像的宽度、高度、每像素所占位数、位平面数、图像类型、像素数据存储位置、调色板数据存储位置、压缩类型和图像扫描方向等。这些参数可分为图幅参数、类型参数、位置参数和压缩类型参数等4类。

(1)图幅参数

图像的宽度和高度是图像的基本参数。由图像宽度可以计算出每行字节数,即由图像宽度乘上每像素字节数直接求得,但有的图像格式要求每行字节数是4的倍数(如BMP文件)或偶数(如PCX文件),计算时需作调整。

(2)类型参数

图像的类型参数通过每像素所占位数进行表示,包括1、4、8、24等。其中,类型为1、4、8的图像中,每像素数据仅为调色板上颜色索引号,因此,其对应调色板所存储的颜色个数分别为2、16和256。而类型为24的图像是真彩色图像,由于其每像素数据直接表示对应颜色值,因此,它不需要调色板数据。

有的图像类型还特别注明图像是黑白还是彩色。有了这个参数,类型为8的黑白图像文件中,每像素数据可以直接表示对应黑白灰度值(0~255),因此可以省略调色板数据(如TIF、TGA文件)。

(3)位置参数

像素数据和调色板数据的位置参数用于对图像数据的存数、取数指针进行定位。它们的存放位置可以固定,也可以不固定,因文件不同而不同。

这里,需注意的是图像扫描的方向或数据存储的顺序。大多数图像文件采用的扫描方向为自上而下(如PCX、GIF、TIF与JPEG文件),少数为自下而上(如BMP、TGA文件)。因此,在对读取了的图像数据进行显示或处理时,需按照文件类型进行相应调整。

(4)压缩类型参数

压缩类型参数用于注明图像文件是否压缩、采用何种压缩等,供存数、取数程序确定是否需要压缩和解压缩。

综上所述,尽管计算机中存储的图像文件类型繁多,但不同类型的图像文件均可根据图像中每像素所占位数和位平面数等图像类型参数来区分,如表1-1所示。图像文件按每像素所占总位数可分为4类,即黑白二值、16色彩色、256色彩色和24位真彩色。有些图像文件中用图像类型参数来区别黑白图像和彩色图像。表1-1中,pal表示该文件采用调色板,需要调色板数据;rgb表示彩色分量排列顺序为红、绿、蓝,bgr则相反,为蓝、绿、红;bw、wb则表示省略调色板,前者表示黑白图像中零值为黑色,高数值为白色,后则相反,零值为白色,高数值为黑色;*表示该类图像支持的数据类型。

表1-1 图像文件类型参数

此外,16色彩色和真彩色图像可分为单一位平面结构与多位平面结构两类。单一位平面结构下,图像数据以像素为单位集中存放,与显示存储器中的存放形式相同。而图像文件中的多位平面存储结构与显示存储器中的有所不同,它是按行为单位存放的。在同一行中图像数据以颜色分量为单位集中在一起,每个位平面相当于一行黑白图像,几个位平面的数据依次存放。