1.3 图像表示和显示
要了解和学习图像技术,首先要掌握对图像的表示(也称表达)和显示。
1.3.1 图像和像素的表示
对图像的表示要分别考虑对图像的整体表示和对组成图像的基本单元的表示。
1. 图像和表示
一幅图像一般可以用一个2-D函数f(x, y)来表示(计算机中为一个2-D数组),这里x和y表示2-D空间XY中一个坐标点的位置,而f则代表图像在点(x, y)的某种性质F的数值。例如,常用的图像一般是灰度图像,这时f表示灰度值,当用可见光成像时,灰度值对应客观景物被观察到的亮度。
日常所见图像多是连续的,即f,x,y的值可以是任意实数。为了能用计算机对图像进行加工,需要把连续的图像在图像坐标空间XY和图像性质空间F中都离散化。这种离散化了的图像就是数字图像,是对连续图像的一种近似。表达数字图像的2-D数组f(x, y)中,f,x,y都在整数集合中取值,所以为强调也可用I(r, c)表示,其中I,r,c都在整数集合中取值。除非另做说明,本书中谈到的图像均指数字图像(因而一般将数字两字省略),所以仍用f(x, y)。
广义上来说,图像可表示一种辐射能量的空间分布,这种分布可以是5个变量的矢量函数,记为T(x, y, z, t, λ),其中x,y,z是空间变量,t代表时间变量,λ是频谱变量(波长),而对应同一组变量时,其函数值T也可以是矢量(如彩色图像包括三个分量)。由于实际图像在时空、频谱和能量上都是有限的,所以T(x, y, z, t, λ)是一个5-D有限函数。
例1.3.1 数字图像示例
图1.3.1所示是两幅典型的公开图像(本书许多处理和分析例子中也以它们为原始图像)。图1.3.1(a)所用的坐标系统常在屏幕显示中采用,它的原点O在图像的左上角,纵轴标记图像的行,横轴标记图像的列。I(r, c)既可代表这幅图像,也可表示在(r, c)行列交点处的图像值。图1.3.1(b)所用的坐标系统常在图像计算中采用,它的原点在图像的左下角,横轴为x轴,纵轴为y轴。f(x, y)既可代表这幅图像,也可表示在(x, y)坐标处像素的值。
图1.3.1 数字图像示例
2. 像素和表示
原始采集的数字图像一般采用光栅图像的形式存储。将图像区域分成小的单元(一般是小正方形),在每个单元中,使用一个介于最大值和最小值的灰度值来表示该单元处图像的亮度。如果光栅足够细,即单元尺寸足够小,就可看到空间连续的图像。
由一幅图像分解得到的基本单元叫作图像元素,简称像素。图像中的像素一般具有相同的形状和尺寸,但可以有不同的属性(灰度)。对2-D图像,英文里常用pixel(也有用pel的)代表像素(picture element)。一幅图像在空间上的分辨率与其包含的像素个数成正比,像素个数越多,图像的空间分辨率越高,也就是越有可能看出图像的细节。
例1.3.2 像素示例
数字图像是由许多像素紧密排列而成的,或者说一幅灰度图像是亮度点的集合,这只要将图像逐步放大就可看出。如从图1.3.1(b)中选取一小块放大,得到的结果如图1.3.2(a)所示,如果将一个32×32的网格(见图1.3.2(b))覆盖在上面,就可得到图1.3.2(c)。图1.3.2(c)所示中每个小格对应一个像素,格内灰度是一致的。
图1.3.2 像素示例
要表示图像就需要表示其各个像素。像素也可用f(x, y)来表示,此时x和y表示该像素的空间位置,而f则代表像素的灰度数值。
比较直观地,一幅图像可表示为一个2-D的M×N的矩阵(其中每个元素表示一个像素,M和N分别为图像的行数和列数)
有些时候用矢量表示图像也比较方便,对应式(1.3.1)有
其中
上述的矩阵表示形式和矢量表示形式是等价的,且可以方便地互相转换。
1.3.2 图像显示
图像显示是指将图像数据以2-D图的形式(一般情况下是亮度模式的空间排列,即在空间(x, y)处显示对应f的亮度)展示出来(这也是计算机图形学的重要内容)。对图像处理来说,处理的结果主要用于显示给人看。对图像分析来说,分析的结果也可以借助计算机图形学技术转换为图像形式直观地展示。所以图像显示对图像处理和图像分析系统来说都是非常重要的。
例1.3.3 显示设备示例
可以显示图像的设备有许多种。常见图像处理和分析系统的主要显示设备是电视显示器。输入显示器的图像也可以通过硬拷贝转换到幻灯片、照片或透明胶片上。除了电视显示器,可以随机存取的阴极射线管(CRT)和各种打印设备也可用于图像输出和显示。
在CRT中,电子枪束的水平垂直位置可由计算机控制。在每个偏转位置,电子枪束的强度是用电压来调制的,每个点的电压都与该点所对应的灰度值成正比。这样灰度图就转化为光亮度空间变化的模式,这个模式被记录在阴极射线管的屏幕上而显示出来。
打印设备也可以看作一种显示图像的设备,一般用于输出较低分辨率的图像。早期在纸上打印灰度图像的一种简便方法是利用标准行打印机的重复打印能力,输出图像上任一点的灰度值可由该点打印的字符数量和密度来控制。近年来使用的各种热敏、喷墨和激光打印机等具有更高的能力,已可打印具有较高分辨率的图像。
图像的原始灰度常有几十到几百级甚至上千级,但有些图像输出设备的灰度只有两级,如激光打印机(或者打印,输出黑;或者不打印,输出白)。为了在这些设备上输出灰度图像并保持其原有的灰度级常采用一种称为“半调输出”的技术。而为了提高半调输出的效果,常采用抖动技术。下面分别介绍。
1. 半调输出
半调输出的原理是利用人眼的集成特性,在每个像素位置打印一个尺寸反比于像素灰度的黑圆点,即在亮的图像区域打印的点小,而在暗的图像区域打印的点大。当点足够小、观察距离足够远时,人眼就不容易分开各个小点,从而得到比较连续平滑的灰度图像。一般报纸上图片的分辨率约为每in(1 in=2.54 cm)100点(即dot per inch,DPI),而书或杂志上图片的分辨率约在每in300点。
例1.3.4 半调输出方法
实现半调输出技术的一种具体方法是先将图像区域细分,取邻近的单元结合起来组成输出区域,这样在每个输出区域内包含若干个单元,只要把一些单元输出黑,而把其他单元输出白就可得到不同灰度的效果。例如,将一个区域分成2×2个单元按照图1.3.3所示的方式可以输出5种不同的灰度,将一个区域分成3×3个单元按照图1.3.4所示的方式可以输出10种不同的灰度。这里如果一个单元在某个灰度为黑,则在所有大于这个灰度的输出中仍为黑。按这种方法,要输出256种灰度需要将一个区域分成16×16个单元。需要注意,这个方法通过减少图像的空间分辨率来增加图像的幅度分辨率(即在空间上用多个只有两种取值的点来得到单个有多种取值的点),所以有可能导致图像采样过粗而影响图像的显示质量(进一步参见下面的抖动技术)。
图1.3.3 将一个区域分成2×2个单元输出5种灰度
图1.3.4 将一个区域分成3×3个单元输出10种灰度
2. 抖动技术
半调输出技术通过减少图像空间分辨率而改善图像幅度分辨率,或者说牺牲图像的空间点数而增加图像的灰度级数。如果要输出灰度级比较多的图像,图像的空间分辨率会大大减少。如果要保持一定的空间分辨率,则输出灰度级会比较少,或者说要保留细节则灰度级数不能太多。然而,当一幅图像的灰度级比较少时,图像的质量会比较差。为改善图像的质量,常使用抖动技术,它通过调节或变动图像的幅度值来改善量化过粗图像的显示质量。
抖动一般通过对原始图像f(x, y)加一个随机的小噪声d(x, y),即将两者相加来实现,这里认为d(x, y)的值与f(x, y)没有任何有规律的联系。
实现抖动的一种具体方法如下。设b为图像显示的比特数,先从以下5个数中以均匀概率获得d(x, y)的值:-2(6–b),-2(5–b),0,2(5–b),2(6–b);再将f(x, y)加上这样得到的随机小噪声d(x, y)的b个最高有效比特作为抖动像素的值。
例1.3.5 抖动实例
图1.3.5所示是一组抖动实例图,图1.3.5(a)是一幅256个灰度级的原始图像;图1.3.5(b)是借助图1.3.4所示的半调技术得到的输出图,由于现在只有10个灰度级,所以在脸部和肩部等灰度变换比较缓慢的区域有比较明显的虚假轮廓现象(参见2.3.2小节);图1.3.5(c)是利用抖动技术进行改善的结果,所叠加的抖动值分别为-2,-1,0,1,2;图1.3.5(d)也是利用抖动技术进行改善的结果,但所叠加的抖动值分别为-4,-2,0,2,4。
图1.3.5 抖动实例图
由上可见,利用抖动技术可以消除一些由于灰度级数过少而产生的虚假轮廓,所叠加的抖动值越大,效果越明显。但抖动值的叠加也给图像带来了噪声,抖动值越大,噪声影响也越大。