2.6 数字图像的表示
本节简单介绍数字图像的知识。图2.14是数字图像显示器(如CRT、LCD等)屏幕的像素示意图。屏幕上的基本可显示单位为像素(在图2.14中用黑白小方块代表),即图像元素(Picture Element, Pixel)的简称。程序员通常假设像素排列成矩形阵列,称为光栅(Raster)。从左至右水平排列的一行像素的集合称为扫描线(Scan-line)。把一屏称为一帧(Frame)。需要用实际的二维屏幕坐标来表示像素的位置。
计算机图形处理硬件具有存储像素信息的帧缓存(Frame Buffer)。例如,分辨率为1024×768,也就是水平方向1024个像素,垂直方向768个像素的显示画面,在计算机内使用容量相当于1024×768个像素的帧缓存。
接下来的问题便是每个像素需要用几位来存储。如果给每个像素分配一位来存储,就只能够显示黑白或单色图像。如果对每个像素分配n位来存储,就能够显示2 n级的灰度(Gray Scale)图像。所谓灰度级,就是给每个像素的明暗分配的等级。把像素从最暗到最亮分成等级(依照惯例最暗表示为0,最亮表示为1),用相应的整数来表示各等级。如果在单色图像显示时,各个像素分配8位来存储,则最多可以显示28 = 256级灰度的单色图像。如图2.15(a)所示是3位灰度(23 = 8级)表示。
图2.14 数字图像显示器(如CRT、LCD等)屏幕的像素示意图
对于彩色图像的显示,通常用红(R)、绿(G)、蓝(B)三原色混合产生新颜色。这称为RGB颜色空间。注意,红、绿、蓝三原色是以叠加方式混合的。这种加性颜色混合与另一种常见的减性颜色混合不同,后者控制着画家使用颜料进行调色以及各种画笔软件。图2.15(b)显示的是3位RGB彩色表示。如果每一种颜色都用8位存储,256级灰度显示,各像素的颜色存储位数就是3×8=24位,能够表示224级即16兆种颜色的彩色图像。把整个图像用数字图像来表示或显示,实际上就是这样为每个像素分配位存储信息的。
图2.15 灰度表示与彩色表示(见彩图I)
在表示彩色数字图像时除了可以采用24位模式外,还可以采用32位模式,即附加一个8位的α(Alpha)通道,用来控制图像的透明性或者不透明性,如图2.16所示。图像可以用下面的公式来表示:
c(x, y)=((r(x, y),g(x, y),b(x, y),α(x, y))
α = 1意味着像素是完全不透明的,即任何以前显示在像素上的背景颜色都被图像的颜色所重写。α = 0意味着像素是完全透明的,即任何以前显示在像素上的背景颜色将不受图像RGB颜色的影响。对于0<α<1,图像原有颜色cimage与像素当前颜色cpixel合成得到像素的最终颜色:
cfinal=(1-α)cpixel+cimage
图2.16 显示器的彩色模式