logo
Published on

fundamental of computer graphics第三章 光栅图像

Authors

序言

大多数计算机图形图像都是通过某种光栅显示器呈现给用户的。光栅显示器将图像显示为一个一个的矩形像素阵列。 一个比较常见的例子是,由小发光像素组成的矩形阵列构成的平板电脑显示器或电视机具有,这些像素可以单独设置为不同的颜色以创建任何所需的图像。通过混合不同强度的红光、绿光和蓝光可以实现不同的颜色。 除此以外,大多数打印机(例如激光打印机和喷墨打印机)也是光栅设备。它们基于扫描:没有物理像素网格,但通过在网格上的选定点上沉积墨水来按顺序放置图像。打印机中的颜色更复杂,涉及至少四种颜料的混合。 光栅在图像输入设备中也很普遍。 数码相机包含一个由感光像素网格组成的图像传感器,每个像素记录落在其上的光的颜色和强度。 台式扫描仪包含一个线性像素阵列,该阵列扫过被扫描的页面,每秒进行多次测量以产生像素网格。

由于光栅在设备中非常普遍,因此光栅图像是最常见的,正是是因为光栅图像非常方便,光栅设备才如此普遍。 最常见的存储和处理图像的方式。光栅图像只是一个二维数组,它存储每个像素的像素值 - 通常存储为三个数字的颜色,分别为红色,绿色和蓝色。存储在内存中的光栅图像可以通过使用存储图像中的每个像素来控制显示器上一个像素的颜色来显示。 但我们并不总是想以这种方式显示图像。我们可能想要改变图像的大小或方向,校正颜色,甚至显示粘贴在移动的三维表面上的图像。即使在电视机中,显示器的像素数很少与所显示的图像相同。 这些考虑因素打破了图像像素和显示像素之间的直接联系。最好将光栅图像视为要显示的图像的设备独立描述,并将显示设备视为近似理想图像的一种方式。

除了使用像素数组之外,还有其他描述图像的方法。 矢量图像通过存储形状描述(由线条或曲线界定的颜色区域)来描述,而不引用任何特定的像素网格。 本质上,这相当于存储显示图像的指令,而不是显示图像所需的像素。矢量图像的主要优点是 它们与分辨率无关,可以在非常高分辨率的 设备上很好地显示。相应的缺点是必须先进行光栅化,然后 才能显示它们。矢量图像通常用于文本、图表、机械图纸和其他应用程序,这些应用程序的清晰度和精度很重要, 而不需要摄影图像和复杂的阴影。

在本章中,我们讨论光栅图像和显示的基础知识,并关注图像中这些数字的实际含义。在后面的章节中讨论计算图像时,重要的是要记住像素值与光强度的关系。

3.1光栅设备

一些熟悉的光栅设备可以分为一个简单的层次结构:

  • 输出
    • 显示
      • 透射式:液晶显示 LCD
      • 放射式:发光二极管显示器 LED
    • 硬拷贝
      • 二进制:喷墨打印机
      • 连续色调:染料升华打印机
  • 输入
    • 2D 阵列传感器:数码相机
    • 1D 阵列传感器:平板扫描仪

3.1.1 显示

目前的显示器,包括电视和数字电影放映机,以及计算机的显示器和投影仪,几乎都是基于固定的像素阵列。它们可以分为放射式显示器透射式显示器

  1. 放射式显示器使用直接发射可控光量的像素,放射式显示器的光源是他自己。
  2. 透射式显示器需要光源照明,比如: 在直视显示器中,这是阵列后面的背光;在投影仪中,它是一盏灯,它发出的光在穿过阵列后投射到屏幕上。透射式显示器像素本身不发光,而是改变它们允许通过的光量 发光二极管(LED)显示器就是放射式的一个例子。每个像素由一个或多个 LED 组成,这些 LED 是半导体器件(基于无机或有机半导体),其发光强度与通过它们的电流有关。

彩色显示器中的像素分为三个独立控制的子像素——红色,绿色,蓝色——子像素由不同的材料构成使得他们可以发出不同的光线。当从远处观看显示器时,眼睛无法分离各个亚像素,所感知的颜色是红、绿和蓝的混合。

液晶显示器(LCD)是透射型的一个例子。液晶是一种材料,其分子结构使其能够旋转穿过它的光的偏振,旋转程度可以通过施加电压来调节。LCD 像素在其后面有一层偏振膜,它能被偏振光照亮(假设它只透射水品偏振的光)。如图:

LCD 显示屏的一个像素处于关闭状态(底部),其中前偏光片阻挡了所有通过后偏光片的光线,以及处于开启状态(顶部),其中液晶单元旋转光线的偏振,以便光线可以穿过前偏光片。图片由 Reinhard、Khan、Akyiz 和 Johnson (2008) 提供。

对于显示器和图像,分辨率只是指像素网格的尺寸:如果台式机显示器的分辨率为 1920 × 1200 像素,则意味着它有 2,304,000 个像素,排列成 1920 列和 1200 行。 要填满屏幕,必须使用第 10 章中的方法将不同分辨率的图像转换为 1920 × 1200 图像。

3.1.2 硬拷贝设备

在纸上永久记录图像的过程与在显示器上暂时显示图像的过程有非常不同的限制。在打印中,颜料分布在纸或其他介质上,以便当光从纸上反射时形成所需的图像。打印机是像显示器一样的光栅设备,但许多打印机只能打印二进制图像——颜料要么沉积在每个网格位置,要么不在,不可能有中间量。

喷墨打印机是通过扫描形成光栅图像的设备的一个例子。喷墨打印头含有携带颜料的液体墨水,它可以在电子控制下以非常小的液滴喷洒。喷头在纸上移动时,墨滴在经过应该接收墨水的网格位置时被释放出来;墨水不会排出在打算留白的区域。每次扫描后,纸张略微前进,然后,网格的下一行被绘制。彩色打印是通过使用几个打印头来进行的,每个喷墨墨水带有不同的颜料,因此每个网格位置可以接收不同颜色的液滴的任意组合。 喷墨打印机没有像素的物理阵列;分辨率取决于每次扫描后液滴的大小和纸张前进的距离。许多喷墨打印机在打印头上有多个喷嘴,使得一次扫描可以进行几次扫描,但最终决定行间距的是纸张推进,而不是喷嘴间距。

热染料转移过程是连续色调打印过程的一个例子,这意味着可以在每个像素处沉积不同量的染料。包含有色染料的供体色带被压在纸或染料接收器和包含加热元件的线性阵列的打印头之间,每列像素对应一个加热元件。当纸和色带经过头时,加热元件接通和关闭以在需要染料的区域加热色带,使染料从色带扩散到纸张。对于几种染料中的每一种都重复这一过程。较高的温度可以使更多的染料被转移,所以可以控制在每个网格位置沉积的每种染料的量,允许产生连续的颜色范围。打印机中的加热元件的数量确保了在整个页面方向上的固定分辨率,但沿着页面的分辨率是由与纸张的速度相比的加热和冷却的速度来确定的。

与显示器不同,打印机的分辨率是用像素密度而不是像素总数来描述的。

  1. 热染料转印打印机:在其打印头上每英寸间隔 300 个元素在页面上的分辨率为 300 像素/英寸(PPI)。如果沿页面的分辨率相同,我们可以简单地说打印机的分辨率为 300 ppi。
  2. 喷墨打印机:将点放置在每英寸 1200 个网格点的网格上的喷墨打印机被描述为具有每英寸 1200 个点(Dpi)的分辨率。

术语‘dpi’经常被用来指‘每英寸像素数’,但 dpi 指的是二进制设备,ppi 指的是连续色调设备。

由于喷墨打印机是二进制设备,至少出于两个原因,它需要更精细的网格。由于边缘是陡峭的黑/白边界,因此需要非常高的分辨率以避免出现阶跃或混叠伪影。当打印连续色调图像时,需要高分辨率来通过打印的不同密度的网点图案来模拟中间色(半色调)。

3.1.3 输入设备

光栅图像必须来自某个地方,任何不是通过某种算法计算的图像都必须由某种光栅输入设备测量,通常是相机或扫描仪。 即使在渲染 3D 场景的图像时,照片也经常用作纹理贴图(参见第 11 章)。光栅输入设备必须对每个像素进行光测量,并且(与输出设备一样)它们通常基于传感器阵列。

数码相机是 2D 阵列输入设备的一个例子。 相机中的图像传感器是一种具有感光像素网格的半导体器件。两种常见的阵列类型是 CCD(电荷耦合器件)和 CMOS(互补金属氧化物半导体)图像传感器。 相机的镜头将要拍摄的场景的图像投射到传感器上,然后每个像素测量落在其上的光能,最终得到一个进入输出图像的数字。

与彩色显示器使用红、绿、蓝子像素的方式非常相似,大多数彩色相机的工作原理是使用彩色滤光片阵列或马赛克,使每个像素只能看到红、绿或蓝光,而图像处理软件则通过称为去马赛克的过程填充缺失的值. 其他相机使用三个独立的阵列或阵列中的三个独立层来测量每个像素的独立红、绿、蓝值,无需进一步处理即可生成可用的彩色图像。相机的分辨率由阵列中的固定像素数决定,通常使用像素总数来表示:具有 3000 列和 2000 行阵列的相机可生成分辨率为 3000 × 2000 的图像,该图像具有 600 万像素,因此称为 6 百万像素 (MP) 相机。重要的是要记住,马赛克传感器不会测量完整的彩色图像,因此,测量相同像素数但具有独立红、绿和蓝测量值的相机比具有马赛克传感器的相机记录了更多关于图像的信息。

平板扫描仪也会测量每个像素网格的红、绿和蓝值,但与热染料转印打印机一样,它使用 ID 阵列扫描被扫描的页面,每秒进行多次测量(图 3.9)。页面上的分辨率由阵列的大小固定,页面上的分辨率由测量频率与扫描头移动速度的比较决定。彩色扫描仪具有 3 X Nx 阵列,其中 na 是页面上的像素数,三行由红、绿和蓝滤光片覆盖。在测量三种颜色的时间之间有适当的延迟,这允许在每个网格点进行三次独立的颜色测量。与连续色调打印机一样,扫描仪的分辨率以每英寸像素数 (ppi) 为单位报告。

在知道了图像信息从哪里来以及如何显示, 接下来我们会在图像算法中继续讨论它.

3.2像素、图像、几何

我们知道,光栅图像是一大组像素,每个像素都存储了其网格点上图像颜色的信息。我们已经了解了各种输出设备如何处理我们发送给它们的图像,以及输入设备如何从物理世界中光形成的图像中获取图像。但对于计算机中的计算,我们需要一个方便的抽象,它独立于任何设备的细节,我们可以使用它来推理如何生成或解释存储在图像中的值。

当我们测量或复制图像时,它们采用光能二维分布的形式:从显示器发出的光作为表面位置的函数;投射在相机传感器上的光是传感器平面上位置的函数;反射率,或光线被反射的分数(相对于吸收)作为位置的函数。因此在物理世界中,图像是在二维区域上定义的函数——几乎总是矩形。因此我们可以将图像抽象为函数,其中 R 是矩形区域,V 是可能的像素值的集合。 I(x,y):RVI(x,y):R\to V 光栅图像如何与连续图像的这个抽象概念相关联? 看具体的例子,来自照相机或扫描仪的像素是图像在像素周围的一些小区域上的平均颜色的量度。显示像素(有红色、绿色和蓝色子像素)的设计使得像素表面上图像的平均颜色由相应的像素值控制。在这两种情况下,像素值是图像颜色的局部平均,它被称为图像的点样本。换句话说,当我们在一个像素中找到值 x 时,它意味着在该网格点附近的值为 x。

像素在 2D 空间中的位置分布如何(这是习惯问题)?本书中,光栅图像是由表示像素列和行的索引对表示的,从左下角开始计数。如果图像有 Nx 列和 Ny 行像素,左下角是(0,0),右上角是像素(n-1,NY-1)。我们需要 2D 屏幕坐标来指定像素位置,我们将把像素的采样点放在整数坐标上。