《Fundamentals of Computer Grahpics》虎书第三版翻译——第三章 光栅化

光栅图片

大多数计算机图形图像是通过某种光栅显像呈现给用户的。光栅显像的图像就是像素数组。Pixel(像素)是“图像元素”的缩写。一个常见的例子是平板电脑显示器或电视,它有一个小发光像素的矩形数组,可以通过单独设置不同的颜色来创建任何想要的图像。不同的颜色是由不同强度的红、绿、蓝光混合而成的。大多数打印机,如激光打印机和喷墨打印机,也是光栅设备。它们是基于扫描的:没有物理的像素网格,但图像是通过在网格上选定的点按顺序 沉积墨水绘制的。(打印机的颜色要复杂得多,至少要混合四种颜料。)
光栅在图形输入设备中也很普遍。一种数码相机包含一个由一组感光像素组成的图形传感器,每个像素都记录了落在上面的光的颜色和强度。桌面扫描仪包含一个线性像素数组,它会快速扫描页面,每秒进行多次测量,以生成一个像素网格。
因为光栅在设备中很流行,所以光栅图像是存储和处理图像最常用的方式。(或者可能是因为光栅图像非常方便,所以栅格设备很流行。)光栅图像是一个简单的二维数组,它存储每个像素的像素值–通常是一种颜色,由三个数字存储,分别是红、绿和蓝。存储在内存中的光栅图像可以通过使用存储图像中的每个像素控制显示的一个像素的颜色。
但我们并不总是希望以这种方式显示图像。我们可能想要改变图像的大小或方向,纠正颜色,甚至显示粘贴在三维表面上移动的图像。
即使在电视中,显示器也很少有显示相同像素数的图像。这样的考虑打破了图像像素和显示像素之间的直接联系。最好将光栅图像看作是要显示的图像的与设备无关的描述,而显示设备则是接近理想图像的一种方法
除了使用像素数组之外,还有其他描述图像的方法。矢量图像是通过存储对形状的描述来描述的——以线或曲线为边界的颜色区域——而不参考任何特定的像素网格。
本质上,这相当于存储显示图像的指令,而不是存储显示图像所需的像素。
矢量图像的主要优点是它们与分辨率无关,可以在非常高分辨率的设备上很好地显示。相应的缺点是它们必须在显示之前必须先被光栅化。
矢量图像通常用于文本、图表、机械制图和其他应用,在这些应用中,清晰度和精度很重要,不需要摄影图像和复杂的阴影。
在这一章中,我们讨论光栅图像和显示的基础知识,特别注意标准显示器的非线性。
当我们在后面的章节讨论计算图像时,像素值如何与光强度相关的细节是非常重要的。
(或者:你必须知道图像中这些数字的真正含义。)

3.1 光栅设备

在讨论光栅图形的概念之前,先看看使用这些图像的一些特定设备的基本操作是有指导意义的。
一些常用的光栅设备可以分为一个简单的层次结构:
•输出
——显示
∗传输器:液晶显示器(LCD)
∗发射型:发光二极管(LED)显示
——硬拷贝
∗二进制:喷墨打印机
∗连续色调:染料升华打印机
•输入
——二维矩阵传感器:数码相机
——一维阵列传感器:平板扫描仪

3.1.1显示
目前的显示器,包括电视和数字电影放映机以及电脑上的显示器和放映机,几乎都是基于固定的像素数组。它们可以被分为发射显示器,使用像素直接发射可控数量的光,以及透射式显示器,像素本身不发光,而是通过透射式显示器改变光的数量。透射式显示器需要光源来照明:
在直观显示中,这是矩阵后面的背光;在投影仪中,它发出的光通过矩阵后投射到屏幕上。发射显示器是使用它自己的光源。
发光二极管(LED)显示器是发射型显示器的一个例子。
每个像素都由一个或多个led组成,这些led是半导体器件(基于无机或有机半导体),发光强度取决于通过它们的电流(见图3.1)。在这里插入图片描述

彩色显示器中的像素被分为三个独立控制的亚像素——一个红色,一个绿色,一个蓝色——每个都有自己的LED,使用不同的材料,以便它们发出不同颜色的光(图3.2)。在这里插入图片描述

当从远处观看显示器时,眼睛无法分离单个的亚像素,而感知到的颜色是红、绿、蓝的混合物。

液晶显示器(lcd)是透射型显示器的一个例子。液晶是一种材料,其分子结构使它能够旋转通过它的光的偏振,并且旋转的程度可以通过施加的电压来调节。一个LCD像素(图3.3)的后面有一层偏振光膜,因此它被偏振光照亮——假设它是水平偏振光
第二层的偏振片的像素只在垂直偏振光下传播。如果将施加的电压设置为中间的液晶层不改变偏振,则所有光都被阻挡,像素处于“关闭”(最小强度)状态。中间电压将部分旋转偏振,使前偏振器部分阻挡光,导致强度介于最小和最大之间(图3.4)。像彩色LED显示器一样,彩色液晶显示器在每个像素内都有红、绿、蓝亚像素,这是三个独立的像素,上面有红、绿、蓝滤光片。
任何具有固定像素网格的显示器,包括这些和其他技术,都具有由网格大小决定的基本固定分辨率。对于显示器和图像,分辨率仅仅意味着像素网格的尺寸:如果桌面显示器的分辨率是1920 × 1200像素,这意味着它有2,304,000像素排列在1920列和1200行中。
一个不同分辨率的图像,要填满屏幕,必须使用第9章的方法转换成1920 × 1200的图像。

(sp:显示器的分辨率有时被称为“本机分辨率”,因为大多数显示器可以通过内置转换处理其他分辨率的图像。)
在这里插入图片描述

3.1.2 深拷贝设备

将图像永远的记录在纸上的过程和在显示器上短暂的显示图像的过程是非常不同的。在印刷中,颜料分布在纸上或者其他媒介,当光线从纸上反射的时候就形成了想要的图像。打印机和显示器一样是光栅设备,但许多打印机只能打印二进制图形-颜料要么存储在网格位置要么不存储,不可能在两者之间。
在这里插入图片描述

喷墨打印机(图3.5)是通过扫描形成光栅图像的例子。喷墨打印机的头部包含带有颜料的墨水,可以在电子控制下喷射非常小的水滴。头在纸上移动,当它经过应该接受墨水的网格位置时,会喷出墨水。在空白区域不喷墨。每次扫完后,将纸稍稍向前移动,然后处理下一行网格。彩色打印是通过使用几个打印头,每个喷墨用不同的颜料,这样每个网格位置都可以收到不同颜色的水滴来进行任意组合。因为所有的滴都是相同的,所以喷墨打印机打印的是二进制图像:在每个网格点只有滴或不滴;没有中间阴影。(sp:还有一种是连续喷墨打印机,它在纸上绕着旋转的滚筒以连续的螺旋路径进行打印,而不是前后移动磁头。)
喷墨打印机没有像素数组;分辨率是取决于水滴的大小和每次扫纸后纸张前进的距离。许多喷墨打印机在打印头有多个喷嘴,
可以一次性扫几个,但最终决定行间距的是纸张的前进速度,而不是喷嘴的间距。
热染料转移过程是连续色调印刷过程的一个例子,这意味着可以在每个像素上存储不同数量的染料——而不像喷墨打印机那样要么有要么没有(图3.6)。在这里插入图片描述

一个彩色色带被压在纸张(或染料接收器)和一个打印头之间,打印头包含一个线性矩阵的加热元件,每个加热元件对应图像中的每一列像素。当纸和纸带经过纸头时,加热元件就会开关,在需要染料的地方加热纸带,使染料从纸带扩散到纸上。对每种染料重复这一过程。
由于更高的温度导致更多的染料被转移,在每个网格位置存储的每种染料的数量是可以被控制的,从而允许产生连续的颜色范围。在打印头的加热元件的数量在整个页面的方向上建立了一个固定的分辨率,但是沿着页面的分辨率是由加热和冷却的速度与纸张的速度相比较决定的。

与显示器不同,打印机的分辨率是用像素密度而不是像素总数来描述的。因此,热敏染料转移打印机的打印头每英寸间距为300的元素在页面上的分辨率为每英寸300像素(ppi)。如果沿着页面的分辨率被选择为相同的,我们可以简单地说打印机的分辨率是300 ppi。
每英寸1200个网格点的喷墨打印机被描述为分辨率为每英寸1200个网格点(dpi)。因为喷墨打印机是一种二进制设备,它需要更精细的网格,至少有两个原因。因为边缘是突然的黑/白边界,所以需要非常高的分辨率,以避免出现阶梯效应或混叠(参见第8.3节)。在打印连续色调图像时,高分辨率需要通过打印被称为半色调的不同密度的网点图案来模拟中间色。
(sp:术语“dpi”经常用来表示“每英寸像素”,但dpi应该用于二进制设备,而ppi用于连续色调设备。)

3.1.3 输入设备

光栅图像不是凭空产生的,任何不是由某种算法计算出来的光栅图像都是通过某些光栅输入设备测量出来,通常是相机或扫描仪。即使在渲染3D场景的图像时,照片也经常被用作纹理贴图(见第11章)。光栅输入设备必须对每个像素进行光测量,(像输出设备一样)它们通常基于传感器矩阵。
数码相机是二维矩阵输入设备的一个例子。相机里的图像传感器是一种半导体装置,那是由光敏像素组成网格。两种常见的传感器矩阵被称为CCDs(电荷耦合器件)和CMOS(互补金属氧化物半导体)图像传感器。相机的镜头将要拍摄的场景的图像投射到传感器上,然后每个像素测量落在其上的光强,最终得到一个进入输出图像的数字(图3.7)。颜色显示也是同理,使用红色,绿色和蓝色亚像素,大部分颜色相机工作通过使用滤色镜数组或马赛克控制每个像素只看到红色,绿色或蓝色光,离开了图像处理软件来填充缺失的值的过程称为demosaicking(去马赛克)(图3.8)

其他相机使用三个独立的阵列,或阵列中的三个独立层,测量每个像素上独立的红、绿、蓝值,无需进一步处理就能生成可用的彩色图像。相机的分辨率是由固定数量的像素数组中,通常是引用在被使用的像素的总数:一个3000列2000行阵列的相机产生的图像分辨率为3000 × 2000,有600万像素,被称为600万像素(MP)相机。最重要的是,要记住,马赛克传感器不能测量完整的彩色图像,因此,与使用马赛克传感器的相机相比,一台独立测量红、绿、蓝像素的相机可以记录更多的图像信息。
(sp:卖相机的人用“mega”表示106兆,而不是220兆。)
平板扫描仪也可以测量每个像素网格的红、绿和蓝值,但像热染料转移打印机一样,它使用一维阵列扫描被扫描的页面,每秒进行多次测量。整个页面的分辨率由阵列的大小确定,而沿着页面的分辨率是由测量频率与扫描头移动速度相比较决定的。彩色扫描仪有一个3 × nx数组,其中nx是整个页面的像素数,三行由红色、绿色和蓝色过滤器覆盖。在测量三种颜色的时间之间有一个适当的延迟,使得在每个网格点上可以测量三种独立的颜色。与连续色调打印机一样,扫描仪的分辨率是以每英寸像素(ppi)为单位报告的。扫描仪的分辨率有时被称为“光学分辨率”,因为大多数扫描仪可以通过内置转换产生其他分辨率的图像。
有了这些关于图像来源和去向的具体信息,我们现在将更抽象地讨论图像,以我们将在图形算法中使用它们的方式。

3.2 图像、像素和几何

我们知道一个栅格图像是一个大的像素数组,每个像素存储关于图像在其网格点上的颜色的信息。我们已经看到了各种输出设备是如何处理我们发送给它们的图像,以及输入设备如何从物理世界中由光形成的图像中获得图像。但对于计算机来说,我们需要再更进一步抽象使它能不依赖于任何不同特性设备进行计算,我们可以用它来推理如何产生或解释存储在图像中的值。
当我们显示图片的时候,他们会以光能的二维分布形式出现:
从显示器发出的光作为在显示器表面的位置函数;
落在相机图像传感器上的光作为传感器平面上位置的函数;
在一张纸上的反射率,或光的反射率(相对于吸收)作为纸上位置的函数。所以在现实世界中,图像是二维区域上定义的函数——几乎总是矩形。所以我们可以把图像抽象成函数。
(SP:“一个像素不是一个小方块!”——阿尔维·雷·史密斯 史密斯,1995))
I(x, y) : R → V,
其中R⊂R²是一个矩形区域,V是可能的像素值的集合。最简单的情况是一个理想化的灰度图像,其中矩形中的每个点只有一个亮度(没有颜色),我们可以说V = R+(非负实数)。
一个理想化的彩色图像,在每个像素处都有红色、绿色和蓝色的值,有V = (R+)³。我们将在下一节讨论V的其他可能性。
(SP:有没有不是矩形的光栅设备?)
光栅图像与连续图像的抽象概念有什么关系?举一个具体的例子,来自相机或扫描仪的像素是图像在像素周围某个小区域的平均颜色的度量值。一个显示像素(包括其红色、绿色和蓝色的子像素)被设计为使该像素表面上的图像的平均颜色由光栅图像中相应的像素值控制。在这两种情况下,像素值都是图像颜色的局部平均值,它被称为图像的点样本。换句话说,当我们在一个像素中找到x值时,它意味着“在这个网格点附近的图像的值是x。”。图像作为函数的采样表示的思想将在第9章中进一步探讨。

一个普通但很重要的问题是像素在2D空间中的位置。这只是一个约束,但建立一个一致的约束是很重要的!在这本书中,光栅图像是由表示像素的列(i)和行(j)的对(i, j)索引的,从左下角开始计数。如果图像有nx列和ny行像素,则左下角像素为(0,0),右下角像素为(nx−1,ny−1)。我们需要2D真实屏幕坐标来指定像素位置。我们将像素的采样点放置在整数坐标上,如图3.10中的4 × 3屏幕所示。
(sp:在一些api和许多文件格式中,图像的行是由上至下组织的,因此(0,0)位于左上角。这是有历史原因的:模拟电视传输的行是从顶部开始的。)
图像的矩形域的宽度为nx,高度为ny,并以网格为中心,这意味着它在每边的最后一个采样点之外扩展了半个像素。所以nx × ny像的矩形域是
R = [−0.5, nx − 0.5] × [−0.5, ny − 0.5] .
同样,这些坐标只是约定,但是在以后实现摄像机和视图转换时记住它们很重要。
(一些系统将坐标移动半个像素,将样本点放置在整数中间,但将图像边缘放置在整数处。)

3.2.1 像素值

3.2.1 像素值

到目前为止,我们已经用实数来描述像素的值,表示图像中某一点的强度(可能分别表示红色、绿色和蓝色)。这表明图像应该是浮点数数组,每个像素存储一个(用于灰度或黑白图像)或三个(用于RGB彩色图像)32位浮点数。当有精度需求的时候会使用这种格式,但是图像有很多像素,存储和传输图像的内存和带宽总是稀缺的。在这种格式下,一张1000万像素的照片就需要115 MB的内存。
(sp:为什么是115mb而不是120mb?)
对于直接显示的图像,需要更小的范围。虽然理论上可能的光强度范围是无界的,但每个设备都有一个绝对有限的最大强度,所以在许多情况下,给像素一个有界的范围是完全足够的,通常为简单起见,取为[0,1]。例如,一个8位图像的可能值是0,1/255,2/255,…, 254/255, 1。使用浮点数存储的图像允许使用大范围的值,通常称为高动态范围(HDR)图像,以区别于使用整数存储的固定范围或低动态范围(LDR)图像。参见第23章,深入讨论高动态范围图像的技术和应用。
(sp:分母是255,而不是256,虽然很尴尬,但是能够准确地表示0和1是很重要的。)
以下是一些典型应用中的像素格式:
•1位灰度-不需要中间灰度的文本和其他图像(要求高分辨率);
•8位RGB固定范围颜色(每像素24位)——网页和电子邮件应用程序、消费者照片;
•8位或10位固定范围RGB(24-30位/像素)-计算机显示的数字接口;
•12- 14位固定范围RGB(36-42位/像素)-专业摄影的原始相机图像;
•16位固定范围RGB(48位/像素)-专业摄影和打印;用于固定距离图像处理的中间格式;
•16位固定范围灰度(16位/像素)-放射学和医学成像;
•16位“半精度”浮点RGB-HDR图像;实时渲染的中间格式;
•32位浮点rgb通用中间格式,用于软件渲染和HDR图像处理。

减少用于存储每个像素的比特数会导致图像中出现两种不同类型的人为缺陷。首先,当将亮度大于最大值的像素设置为最大可表示值时,使用固定范围值对图像进行编码产生裁剪。例如,一张阳光场景的照片可能包含比白色表面更亮的反射;这些将被剪掉时图像会被转好到固定范围(即使他们是通过相机测量的)。其次,当需要将像素值四舍五入到最接近的可表示值时,编码精度低的图像会导致量化失真或Banding,从而在强度或颜色上产生跃变。Banding经常隐藏在动画或视频中,在静态图像中,条带可能不会令人反感,但当它们来回移动时,就变得非常明显。

3.2.2 显示器强度和γ
所有现代显示器都采用数字输入的像素“值”,并将其转换为强度等级。真正的显示器关掉的时候可能也会有一点光强,因为屏幕反射一些光。我们先将显示器关掉的时候视为“黑色”以及完全打开的显示器视为“白色”。我们假设像素颜色的数值描述范围从0到1。黑色是0,白色是1,介于黑色和白色之间的灰色是0.5。注意,这里的“中间”指的是来自像素的物理量,而不是实际看到的那样。人类对强度的感知是非线性的,本节不会讨论这个;详见第22章。
要想在显示器上生成正确的图像,必须了解两个关键问题。首先,显示值和输入值不是一一对称的,也不是线性关系。例如,如果给一个显示器0、0.5和1.0作为三个像素的输入,显示的强度可能是0、0.25和1.0(关闭,四分之一完全打开,和完全打开)。显示器通常用γ值来表示这种特征。这个值就是公式中的自由度
显示强度=(最大强度)aγ,
其中a为0到1之间的输入像素值。例如,如果显示器的γ为2.0,而我们输入值a = 0.5,则显示的强度将是最大强度的四分之一,因为0.5*2 = 0.25。
注意,a = 0映射到零强度,a = 1映射到最大强度,与γ值无关。用γ描述显示器的非线性只是一个近似值;我们不需要很精确地估计设备的γ值。衡量非线性的一个很好的视觉方法是找到a在黑白之间的强度值。这个a是
在这里插入图片描述

如果我们能找到a,我们可以通过两边取对数来推导γ
在这里插入图片描述

在这里插入图片描述

(Figure 3.11从远处看,交替的黑色和白色像素在黑白之间。监视器的γ可以通过寻找灰度值来推断,灰度值似乎与黑白图案的强度相同。)

我们可以通过一种标准技术找到这个a(图3.11),即在输入a的灰色像素的正方形旁边显示一个黑白像素的棋盘图案,然后要求用户调整a(例如通过滑动条),直到两边平均亮度相匹配。当你从远处看这幅图像(或者如果你是近视且不带眼镜),当a产生介于黑白之间的强度时,两边图像会看上去差不多。这是因为模糊的棋盘混合了偶数个白色和黑色像素,所以整体效果是一个统一的颜色,介于白色和黑色之间。一旦我们知道了γ,我们就可以校正输入,使a = 0.5的值以介于黑色和白色之间的强度显示出来。这是通过变换完成的

在这里插入图片描述

将此公式代入式(3.1)可得
在这里插入图片描述

另外,真实显示器的另一个重要特征是它们接受量化的输入值。因此,虽然我们可以在浮点数范围[0,1]内操纵强度,但对显示器的精确输入是一个固定大小的整数。这个整数最常见的范围是0-255,可以保存在8位存储中。这意味着a的可能值不是[0,1]中的任何数字,而是
在这里插入图片描述

这意味着可能显示的强度值是近似的
在这里插入图片描述

式中M为最大强度。在需要控制精确强度的应用中,我们必须实际测量256种可能的强度,而这些强度在屏幕上的不同点可能是不同的,尤其是(CRTS阴极射线管)。它们也可能随观察角度而变化。幸运的是需要这样精确的校准的应用不多。
(sp:对于带有模拟接口的显示器,很难沿着水平方向快速改变强度,水平黑白条纹比棋盘更好。)

3.3 (RGB)颜色

大多数计算机图形图像是用红绿蓝(RGB)颜色定义的。RGB颜色是一个简单的空间,允许直接转换为大多数计算机屏幕的控件。本节从用户的角度讨论RGB颜色,操作设备是我们的目标。关于颜色的更深入的讨论将在第21章中给出,但是RGB颜色空间的机制将允许我们编写大多数图形程序。RGB颜色空间的基本思想是,颜色由三种原光混合显示:一种红、一种绿、一种蓝。灯光以一种附加的方式混合在一起。在RGB加色混合中我们有(图3.12):
红+绿=黄
绿+蓝=青
蓝+红=紫
红+绿+蓝=白
在这里插入图片描述

在小学的时候,你可能学过三原色是红、黄、蓝,例如,黄+蓝=绿。这就是减色法混色,它与我们在显示器中看到的加色混色从根本上不同。图3.12。红色/绿色/蓝色的加法混合规则。

“cyan”是蓝绿色,“magenta”是紫色。
如果我们允许将主光源从完全关闭(用像素值0表示)调暗到完全打开(用像素值1表示),我们就可以创建所有可以在RGB显示器上显示的颜色。红色、绿色和蓝色像素值创建一个具有红色、绿色和蓝色轴的三维RGB颜色立方体。坐标轴的允许坐标范围从0到1。颜色立方体显示如图3.13所示。
在这里插入图片描述

图3.13。RGB颜色立方体在3D和它的面展开。任何RGB颜色都是立方体中的一点
立方体四角的颜色是:
黑= (0,0,0)
红= (1,0,0)
绿= (0,1,0)
蓝= (0,0,1)
黄= (1,1,0)
紫= (1,0,1)
青= (0,1,1)
白色=(1,1,1)

实际的RGB等级通常以量化的形式给出,就像第3.2.2节讨论的灰度一样。每个组件都用一个整数指定。这些整数最常见的大小是一个字节,所以三个RGB组件都是0到255之间的整数。这三个整数总共占用三个字节,即24位。因此,拥有“24位颜色”的系统对于三种基本颜色中的每一种都有256种可能的级别。3.2.2章节中讨论的gamma校正问题也分别适用于每个RGB分量。

3.4 α合成

通常我们只希望部分覆盖像素的内容。普通的这方面的例子发生在合成中,我们有一个背景并且想要在其上插入前景图像。对于前景中的不透明像素,我们 只需替换背景像素。对于完全透明的前景像素,我们不要更改背景像素。对于部分透明像素,需要特别注意 必须采取行动。部分透明的像素可能出现在前景对象
具有部分透明区域,如玻璃,但最常见的情况是。只有前景对象时,前景和背景必须混合 部分覆盖像素,或者在前景对象的边缘,或者当存在时 是亚像素孔,例如远处树木的叶子之间。 将前景对象与背景对象混合所需的最重要的信息是像素覆盖率,它表示前景层覆盖的像素部分。我们可以称这个分数为α。如果我们想要在背景色cb上合成前景色cf,并且前景覆盖的像素部分是α,那么我们可以使用公式在这里插入图片描述

对于不透明前景层,解释是前景对象覆盖像素矩形内的区域α,背景对象覆盖剩余区域,即(1)− α). 对于透明层(想象一下在玻璃或描图纸上使用半透明颜料绘制的图像),其解释是前景层阻挡了分数(1)− α) 从背景射出的光的一部分,并贡献其自身颜色的一小部分α来替换被移除的部分。使用公式(3.2)的示例如图3.14所示。图像中所有像素的α值可能存储在单独的存储库中灰度图像,也称为alpha遮罩或透明度遮罩。或者,该信息可以存储为RGB图像中的第四通道,其中在这种情况下,它被称为alpha通道,并且该图像可以被称为RGBA图像。对于8位图像,每个像素占用32位,这是一个方便的大小在许多计算机体系结构中。虽然方程式(3.2)是通常使用的,但在各种情况下α的使用方式不同(Porter&Duff,1984)
在这里插入图片描述

3.4.1 图像存储
大多数RGB图像格式使用红、绿、蓝通道各8位。这将为一个百万像素的图像生成大约3兆字节的原始信息。为了减少存储需求,大多数图像格式都允许某种形式的压缩。在高水平上,这种压缩要么是无损的,要么是有损的。在无损压缩中没有信息被丢弃,而在有损系统中有些信息会不可恢复地丢失。流行的图像存储格式包括:
•jpeg。这种有损格式基于人眼视觉系统中的阈值对图像块进行压缩。这种格式适用于自然图像。
•tiff。压缩8位或16位RGB,尽管存在许多其他选项。这种格式最常用来保存二进制图像或无损图像
•ppm。对于8位RGB图像,尽管存在许多选项。这种非常简单、无损、未压缩的格式是最常用的
•png。这是一组带有一组好的开源管理工具的无损格式。
由于压缩和变体,可能会涉及到为图像编写输入/输出例程。幸运的是,人们通常可以依靠库例程来读写标准文件格式。
对于简单性高于效率的快速应用程序,一个简单的选择是使用原始ppm文件,通常可以简单地通过将存储在内存中的映像的数组转储到一个文件中,并在适当的头文件之前进行编写。

常见问题

•为什么他们不让显示器线性化,避免所有这些伽玛?

理想情况下,显示器的256种可能强度看起来应该是均匀间隔的,而不是能量上的线性间隔。由于人类对强度的感知本身是非线性的,1.5到3之间的伽马(取决于观看条件)将使强度在主观意义上近似一致。这样伽马就是一个特性。否则制造商就会把显示器做成线性的。

练习

  1. 模拟从拜耳马赛克获得的图像,取一幅自然图像(最好是扫描照片,而不是可能已经应用了拜耳马赛克技术的数码照片),创建一个由红/绿/蓝交错通道组成的灰度图像。
    这模拟了数码相机的原始输出。
    现在从输出创建一个真正的RGB图像,并与原始图像进行比较.
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值