欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

tiger book java pdf download tiger book 4th edition pdf

最编程 2024-04-06 14:34:56
...



文章目录

  • 3.1 光栅设备
  • 3.1.1 显示器
  • 3.1.2 硬拷贝设备
  • 3.1.3 输入设备
  • 3.2 图像,像素和形状
  • 3.2.1 像素值
  • 3.2.2 显示器强度和伽马
  • 3.3 RGB颜色
  • 3.4 Alpha合成
  • 3.4.1 图像存储



大多数的图形图像在

光栅显示器 上展示给用户。光栅显示器将图像作为矩形像素数组显示。一个通俗的例子是:一台平面电脑显示器或电视,它们具有小发光像素的矩形阵列,可以分别设置为不同的颜色以创建任何所需的图像。通过混合不同强度的红,绿和蓝光可获得不同的颜色。 大多数打印机(例如激光打印机和喷墨打印机)也是光栅设备。它们基于扫描:没有物理像素网格,但是通过在网格上的选定点处沉积墨水来顺序放置图像。

栅格在图像输入设备中也很普遍。 数码相机包含图像传感器,该图像传感器包括光敏像素的网格,每个像素都记录落在其上的光的颜色和强度。 台式扫描仪包含一个线性像素阵列,该像素阵列扫过要扫描的页面,每秒进行多次测量以生成像素网格。

由于栅格在设备中非常普遍,因此栅格图像是存储和处理图像的最常用方法。 光栅图像使用一个2D数组存储每个像素的像素值-通常是存储为三个数字的颜色(红色,绿色和蓝色)。 通过使用存储的图像中的每个像素来控制显示器的一个像素的颜色,就可以显示存储在存储器中的光栅图像。

但是我们并不总是希望以此方式显示图像。 我们可能想要更改图像的大小或方向,校正颜色,甚至显示粘贴在移动的三维表面上的图像。 即使在电视机中,显示器也很少具有与所显示图像相同数量的像素。 诸如此类的考虑打破了图像像素与显示像素之间的直接联系。最好将光栅图像视为是要显示图像的与设备无关的描述,而将显示设备视为逼近理想图像的一种方式。

除了使用像素阵列之外,还有其他描述图像的方法。矢量图像是通过存储形状的描述(由线条或曲线界定的颜色区域)来描述的,而没有引用任何特定的像素网格。 从本质上讲,这相当于存储显示图像的指令,而不是显示图像所需的像素。 矢量图像的主要优点是它们与分辨率无关,并且可以在非常高分辨率的设备上很好地显示。 相应的缺点是,在显示它们之前必须对其进行栅格化。 矢量图像通常用于文本,图表,机械制图,以及其他要求清晰度和精确度而无需摄影图像和复杂阴影的应用中。

在本章中,我们将讨论光栅图像和显示的基础知识,尤其要注意标准显示的非线性。 当我们在后面的章节中讨论计算图像时,必须牢记像素值与光强度的关系的细节。

3.1 光栅设备

在摘要讨论光栅图像之前,先了解一些使用这些图像的特定设备的基本操作是有启发性的。 可以将一些熟悉的栅格设备简单地分为几类:

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

3.1.1 显示器

当前的显示器,包括电视机和数字电影放映机以及用于计算机的显示器和放映机,几乎普遍基于固定的像素阵列。 它们可以分为发射式显示器透射式显示器,发射式显示器使用直接发射可控光量的像素;像素本身不发光,而是改变它们允许通过的光量。 透射式显示器需要一个光源来照亮它们:在直视式显示器中,这是阵列后面的背光; 在投影仪中,它是一盏发出光的灯,穿过阵列后会投射到屏幕上。 发光显示器是其自身的光源。

发光二极管(LED)显示器是发射型的例子。 每个像素由一个或多个LED组成,这些LED是半导体器件(基于无机或有机半导体),其发光强度取决于流过它们的电流(见图3.1)。

虎书 java pdf 下载 虎书第4版pdf_图形学


彩色显示器中的像素分为三个独立控制的子像素(一个红色,一个绿色和一个蓝色),每个子像素都有其自己的LED,该LED使用不同的材料制成,从而发出不同颜色的光(图3.2)。从远处观看显示器时,眼睛无法分辨各个子像素,感知到的颜色是红色,绿色和蓝色的混合。

虎书 java pdf 下载 虎书第4版pdf_计算机图形学_02


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

虎书 java pdf 下载 虎书第4版pdf_虎书 java pdf 下载_03


像素前面的第二层偏振膜被定向为仅透射垂直偏振光。 如果设置所施加的电压,以使两者之间的液晶层不改变偏振态,则所有光都将被遮挡,并且像素处于“关闭”(最小强度)状态。 如果设置电压使液晶将偏振旋转90度,则所有从像素背面入射的光都会从正面逸出,像素完全“打开”——它具有最大强度。 中压会部分旋转偏振光,因此前偏振片会部分阻挡光,从而导致强度介于最小值和最大值之间(图3.4)。 像彩色LED显示器一样,彩色LCD在每个像素内都有红色,绿色和蓝色子像素,它们是三个独立的像素,上面有红色,绿色和蓝色滤色镜。

虎书 java pdf 下载 虎书第4版pdf_fundamentals_04


具有固定像素网格的任何类型的显示器(包括这些技术和其他技术)都具有由网格大小决定的从根本上固定的分辨率。对于显示器和图像,分辨率仅表示像素网格的尺寸:如果台式机显示器具有 分辨率为1920×1200像素,这意味着它有2,304,000像素按1920列和1200行排列。

为了填充整个屏幕,必须使用第9章的方法将不同分辨率的图像转换为1920×1200图像。

3.1.2 硬拷贝设备

与在显示器上瞬时显示图像相比,将图像永久记录在纸上的过程有很大的不同。 在打印过程中,颜料会散布在纸张或其他介质上,以便当光从纸张反射时会形成所需的图像。 打印机是像显示器一样的光栅设备,但是许多打印机只能打印二进制图像——在每个网格位置上都沉积或不沉积颜料,没有中间量。

喷墨打印机(图3.5)是通过扫描形成光栅图像的设备示例。 喷墨打印头包含带有液体的颜料,可以在电子控制下将其喷成很小的液滴。 喷头在纸张上移动,当墨滴通过应该接收墨水的网格位置时,墨滴就会散发出去; 在打算留为空白的区域中不会发出墨水。每次扫动后,纸张略微前进,然后放下网格的下一行。 通过使用多个打印头进行彩色打印,每个打印头用不同的颜料喷涂墨水,以便每个网格位置可以接收不同颜色的墨滴的任意组合。因为所有墨滴都是相同的,所以喷墨打印机会打印二进制图像:在每个网格点上都有墨滴或没有墨滴; 没有中间效果。

虎书 java pdf 下载 虎书第4版pdf_虎书 java pdf 下载_05


喷墨打印机没有像素的物理阵列。 分辨率取决于每次扫描后可以滴多少滴以及纸张前进多远。 许多喷墨打印机在打印头中有多个喷嘴,一次可以进行多次扫描,但是最终决定行间距的是纸张前进而不是喷嘴间距。热染料转移过程是连续色调打印过程的一个示例,这意味着可以在每个像素处沉积不同数量的染料-它不像喷墨打印机那样全有或全无(图3.6)。将包含有色染料的供体色带压在纸张或染料接收器与包含线性加热元件阵列的打印头之间,加热元件线性阵列用于图像中的每一列像素。当纸和色带经过打印头时,加热元件会打开和关闭,以在需要染料的区域加热色带,从而使染料从色带扩散到纸张上。对几种染料颜色中的每一种都重复此过程。由于较高的温度导致更多的染料转移,因此可以控制沉积在每个网格位置的每种染料的量,从而可以产生连续范围的颜色。打印头中加热元件的数量在整个页面方向上建立了固定的分辨率,但是沿着页面的分辨率由加热和冷却的速度与纸张的速度相比来确定。

虎书 java pdf 下载 虎书第4版pdf_fundamentals_06


与显示器不同,打印机的分辨率是根据像素密度而不是像素总数来描述的。 因此,一种热染料转移打印机在其打印头上每英寸间隔300英寸,在整个页面上的分辨率为每英寸300像素(ppi)。如果选择页面上的分辨率相同,我们可以简单地说打印机的分辨率为300 ppi。将点以每英寸1200个网格点放置在网格上的喷墨打印机被描述为具有每英寸1200个点(dpi)的分辨率。因为喷墨打印机是二进制设备,所以出于至少以下两个原因,它需要更精细的网格。由于边缘是陡峭的黑白边界,因此需要非常高的分辨率,以防止出现阶梯刻痕或混叠现象(请参见第8.3节)。当打印连续色调图像时,需要高分辨率以通过打印称为半色调的变化密度的点图案来模拟中间色。

3.1.3 输入设备

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

数码相机是2D阵列输入设备的一个示例。 照相机中的图像传感器是具有光敏像素网格的半导体器件。 两种常见的阵列类型称为CCD(电荷耦合器件)和CMOS(互补金属-氧化物-半导体)图像传感器。 相机镜头将要拍摄的场景图像投射到传感器上,然后每个像素测量落在其上的光能,最终得到一个数字,进入输出图像(图3.7)。 彩色显示器使用红色,绿色和蓝色子像素的方式几乎相同,大多数彩色相机通过使用滤色器阵列或马赛克来工作,以使每个像素只能看到红色,绿色或蓝色的光,而无需使用图像处理软件在称为去马赛克的过程中填写缺失值(图3.8)。

虎书 java pdf 下载 虎书第4版pdf_图形学_07


虎书 java pdf 下载 虎书第4版pdf_fundamentals_08


其他相机使用三个单独的阵列或该阵列中的三个单独的层来测量每个像素处的独立红色,绿色和蓝色值,无需进一步处理即可生成可用的彩色图像。 摄像机的分辨率由阵列中固定的像素数确定,通常使用总像素数来引用:具有3000列和2000行的阵列的摄像机会产生分辨率为3000×2000的图像,具有600万像素,称为6百万像素(MP)相机。 重要的是要记住,mosiac传感器无法测量完整的彩色图像,因此,与使用马赛克传感器的相机相比,测量相同像素数量但具有独立的红色,绿色和蓝色测量值的相机会记录有关该图像的更多信息。平板扫描仪还可以测量每个像素网格的红色,绿色和蓝色值,但是像热染料转印打印机一样,它使用一维阵列扫描整个扫描页面,每秒进行多次测量。 页面上的分辨率由阵列的大小确定,页面上的分辨率由测量频率与扫描头移动速度的比较确定。 彩色扫描仪具有3×nx阵列,其中nx是页面上的像素数,三行由红色,绿色和蓝色滤镜覆盖。 在测量三种颜色的时间之间有适当的延迟,这允许在每个网格点进行三种独立的颜色测量。 与连续色调打印机一样,扫描仪的分辨率以每英寸像素(ppi)描述。

虎书 java pdf 下载 虎书第4版pdf_虎书_09


有了有关图像的来源和去向的具体信息,我们现在将以图形算法中使用图像的方式更抽象地讨论图像。

3.2 图像,像素和形状

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

当我们测量或复制图像时,它们采取光能的二维分布形式:从显示器发出的光随显示器表面位置的变化而变化; 相机图像传感器上的光线随传感器平面位置的变化而变化; 反射率或反射光的比例(相对于吸收光),取决于在一张纸上的位置。 因此,在物理世界中,图像是在二维区域(几乎总是矩形)上定义的函数。 这样我们就可以将图像抽象为一个函数:

其中 是一个矩形区域,V是一组可能的像素值。 最简单的情况是理想化的灰度图像,其中矩形中的每个点都只有一个亮度(没有颜色),我们可以说 (非负实数)。 理想化的彩色图像在每个像素处具有红色,绿色和蓝色值,其 。 在下一节中,我们将讨论V的其他可能性。

栅格图像与连续图像的抽象概念如何相关? 看具体的例子,来自照相机或扫描仪的像素是在像素周围的一些小区域上图像平均颜色的度量。 设计具有红色,绿色和蓝色子像素的显示像素,以使像素表面上图像的平均颜色由光栅图像中的相应像素值控制。 在这两种情况下,像素值都是图像颜色的局部平均值,它被称为图像的点样本。 换句话说,当我们在一个像素中找到值x时,表示“该网格点附近的图像的值为x”。 在第9章中将进一步探讨图像作为函数的表示形式的思想。

虎书 java pdf 下载 虎书第4版pdf_fundamentals_14


一个普通但重要的问题是像素在2D空间中的位置。 这只是一个约定,但是建立一致的约定很重要! 在这本书中,光栅图像是由表示像素的列 和行 的对 索引的,从左下角开始计数。 如果图像具有 列和 行像素,则左下像素为 ,右上角为像素

图像的矩形域的宽度为 ,高度为 ,并且以该网格为中心,这意味着它在每侧的最后一个采样点之外延伸了半个像素。 因此

上一篇: 使用 ORCA 进行 DLPNO-CCSD(T) 计算--LoosePNO、NormalPNO、TightPNO,一般来说 LoosePNO 的精度不高,尽量选择后两者。 如果系统较大,也可以使用 ORCA 的 RIJK 或 RIJCOSX 近似来加速哈特里-福克计算,此时的关键字分别是: def2-TZVP def2-TZVP/C DLPNO-CCSD(T) TightSCF tightPNO RIJK def2/JK

下一篇: vscode-task.json 自定义任务