[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:04.95,Default,,0000,0000,0000,,在本节,我想讲一下计算机里是怎么处理数码图像的 Dialogue: 0,0:00:04.95,0:00:10.22,Default,,0000,0000,0000,,这里有个例子 - 黄色花朵的图像 Dialogue: 0,0:00:10.22,0:00:15.36,Default,,0000,0000,0000,,我们看到的是有机的圆形物体 Dialogue: 0,0:00:15.36,0:00:20.19,Default,,0000,0000,0000,,在计算机里,它就成了多个小数值。这是怎样做到的呢 Dialogue: 0,0:00:20.19,0:00:24.87,Default,,0000,0000,0000,,我们来看看左上角的这朵花 Dialogue: 0,0:00:24.87,0:00:29.91,Default,,0000,0000,0000,,你看到一小片绿色区域,中间有个小东西 Dialogue: 0,0:00:29.91,0:00:34.96,Default,,0000,0000,0000,,如果将它放大十倍,就成这样。你看到的图像 Dialogue: 0,0:00:34.96,0:00:39.91,Default,,0000,0000,0000,,是由这些小正方形组成的,它们称为像素 Dialogue: 0,0:00:39.91,0:00:45.32,Default,,0000,0000,0000,,每个像素都是正方形的,像素非常小 Dialogue: 0,0:00:45.32,0:00:50.72,Default,,0000,0000,0000,,大概每英寸有100像素。每个像素只显示一个单色 Dialogue: 0,0:00:50.72,0:00:55.82,Default,,0000,0000,0000,,像素是由每个单色的方块锁定 Dialogue: 0,0:00:55.82,0:01:00.66,Default,,0000,0000,0000,,有趣的是像素看起来有点不自然,且轮廓分明 Dialogue: 0,0:01:00.66,0:01:04.98,Default,,0000,0000,0000,,但由于像素非常小,你在原图看像素时,没有觉得不对劲 Dialogue: 0,0:01:04.98,0:01:09.66,Default,,0000,0000,0000,,像素太小了,肉眼分辨不出来 Dialogue: 0,0:01:09.66,0:01:14.15,Default,,0000,0000,0000,,你看不到那些分明的轮廓。放大看像素时,图像就是这样子 Dialogue: 0,0:01:14.15,0:01:19.10,Default,,0000,0000,0000,,要考虑一个图像里有多少个像素的话,就是乘法的问题 Dialogue: 0,0:01:19.10,0:01:23.86,Default,,0000,0000,0000,,要计算一个宽800像素和高600像素的图像有多少像素,就用乘法 Dialogue: 0,0:01:23.86,0:01:28.40,Default,,0000,0000,0000,,将两者相乘,就是480000像素 Dialogue: 0,0:01:28.40,0:01:33.19,Default,,0000,0000,0000,,你可能听过“百万像素”这个词 Dialogue: 0,0:01:33.19,0:01:37.32,Default,,0000,0000,0000,,它在计算机和数码相机等很常见。百万像素就是一百万个像素 Dialogue: 0,0:01:37.32,0:01:41.45,Default,,0000,0000,0000,,800x600的图像,480000。粗略讲,大约是一百万像素的一半 Dialogue: 0,0:01:41.45,0:01:45.59,Default,,0000,0000,0000,,从现代标准来看,这个图像像素并不高 Dialogue: 0,0:01:45.59,0:01:49.90,Default,,0000,0000,0000,,目前的数码相机甚至是手机 Dialogue: 0,0:01:49.90,0:01:54.04,Default,,0000,0000,0000,,都会产生五百万像素、一千万像素或两千万像素的图像 Dialogue: 0,0:01:54.04,0:01:58.97,Default,,0000,0000,0000,,好,我们来看看其中的原理 Dialogue: 0,0:01:58.97,0:02:04.22,Default,,0000,0000,0000,,为了让图像轮廓分明,我做了这幅图 Dialogue: 0,0:02:04.22,0:02:09.36,Default,,0000,0000,0000,,我可以将这个图像看做是像素组成的网格,每个像素都是一个正方形,显示一个单色 Dialogue: 0,0:02:09.36,0:02:13.97,Default,,0000,0000,0000,,我们要有一个地址分析方案 Dialogue: 0,0:02:13.97,0:02:18.93,Default,,0000,0000,0000,,来将每个像素与其他像素分辨出来 Dialogue: 0,0:02:18.93,0:02:23.72,Default,,0000,0000,0000,,原理就是这里有一系列 x 值。0在最左端,往右的值不断增大 Dialogue: 0,0:02:23.72,0:02:28.32,Default,,0000,0000,0000,,y 的方向有点特别 Dialogue: 0,0:02:28.32,0:02:33.05,Default,,0000,0000,0000,,0在最顶端,最上面一行,y 值的顺序是从上往下 Dialogue: 0,0:02:33.05,0:02:38.39,Default,,0000,0000,0000,,我们在计算机里就是这样使用数值的 Dialogue: 0,0:02:38.39,0:02:43.92,Default,,0000,0000,0000,,我来做一些很简单的实例。如左上角的像素是00 Dialogue: 0,0:02:43.92,0:02:48.41,Default,,0000,0000,0000,,或可以说 x 等于0,y 等于0 Dialogue: 0,0:02:48.41,0:02:52.64,Default,,0000,0000,0000,,像素1在它右面,因此这个像素的位置是 x 等于0,y 等于0。 Dialogue: 0,0:02:52.64,0:02:57.07,Default,,0000,0000,0000,,在讲到坐标时,通常是先说 x 值再说 y 值 Dialogue: 0,0:02:57.07,0:03:01.79,Default,,0000,0000,0000,,这里就是 1, 0。这个像素可以说是 x = 4,y=2. Dialogue: 0,0:03:01.79,0:03:06.21,Default,,0000,0000,0000,,或者只说4,2 Dialogue: 0,0:03:06.21,0:03:10.87,Default,,0000,0000,0000,,实际上,我们不会太纠结于用 x 和 y 的值来确定像素 Dialogue: 0,0:03:10.87,0:03:15.71,Default,,0000,0000,0000,,你只需知道有这样一个网格就可以了 Dialogue: 0,0:03:15.71,0:03:20.43,Default,,0000,0000,0000,,哪怕是一千万像素,每个特定的像素都有 x 值和 y 值来区别它和其他像素 Dialogue: 0,0:03:20.43,0:03:25.32,Default,,0000,0000,0000,,问题是,有了这些像素 Dialogue: 0,0:03:25.32,0:03:30.47,Default,,0000,0000,0000,,如何编译每个特定像素的颜色 Dialogue: 0,0:03:30.47,0:03:35.39,Default,,0000,0000,0000,,要讲这一点,我要先讲讲简单的历史背景 Dialogue: 0,0:03:35.39,0:03:40.47,Default,,0000,0000,0000,,在17世纪,牛顿做了一个有名的实验,我在这里复制这个实验 Dialogue: 0,0:03:40.47,0:03:45.55,Default,,0000,0000,0000,,用棱镜,其实就是三角形的玻璃 Dialogue: 0,0:03:45.55,0:03:49.35,Default,,0000,0000,0000,,白色阳光从左边照进来,棱镜将阳光分散成光谱 Dialogue: 0,0:03:49.49,0:03:54.26,Default,,0000,0000,0000,,我将光谱投映在白纸上 Dialogue: 0,0:03:54.26,0:03:58.70,Default,,0000,0000,0000,,这里显示出白光不是不可见的纯净物体。相反,它可以被分散成这些纯组成色 Dialogue: 0,0:03:58.70,0:04:03.33,Default,,0000,0000,0000,,你看彩虹时,也是看到同样的事物 Dialogue: 0,0:04:03.33,0:04:08.26,Default,,0000,0000,0000,,这些颜色其实是在连续谱里 Dialogue: 0,0:04:08.26,0:04:13.08,Default,,0000,0000,0000,,不过牛顿分辨出这些颜色,并给它们命名 Dialogue: 0,0:04:13.08,0:04:17.70,Default,,0000,0000,0000,,那个有名的顺序是从这边的红色开始,到橙色、黄色、绿色 Dialogue: 0,0:04:17.70,0:04:22.39,Default,,0000,0000,0000,,最后是蓝色、靛青和最远处的紫色 Dialogue: 0,0:04:23.50,0:04:31.05,Default,,0000,0000,0000,,在计算机里,我要把这些纯色看做是一个调色板 Dialogue: 0,0:04:31.05,0:04:37.71,Default,,0000,0000,0000,,我们要使用的方案就是在这里挑出红绿蓝 Dialogue: 0,0:04:37.71,0:04:43.58,Default,,0000,0000,0000,,将这些颜色作为组成色来构成我们想要的其他颜色 Dialogue: 0,0:04:43.58,0:04:48.07,Default,,0000,0000,0000,,你可以这样想,左边有白光进来 Dialogue: 0,0:04:48.07,0:04:52.00,Default,,0000,0000,0000,,这里有组成色出去 Dialogue: 0,0:04:52.00,0:04:56.04,Default,,0000,0000,0000,,你也可以从相反的角度来想。假如我拿组成色从这边照进去 Dialogue: 0,0:04:56.04,0:05:00.02,Default,,0000,0000,0000,,我就可以有白光出来。物理学跟这个不尽相同 Dialogue: 0,0:05:00.02,0:05:04.10,Default,,0000,0000,0000,,但也可以提示我们如何在计算机里结合这些组成色 Dialogue: 0,0:05:04.10,0:05:08.78,Default,,0000,0000,0000,,关于靛青有个有趣的故事 Dialogue: 0,0:05:08.78,0:05:13.41,Default,,0000,0000,0000,,牛顿命名这些颜色时,蓝色和紫色之间我们有靛青 Dialogue: 0,0:05:13.41,0:05:17.69,Default,,0000,0000,0000,,真的吗?我们要单独用一个词,不能就叫蓝色 Dialogue: 0,0:05:17.69,0:05:22.06,Default,,0000,0000,0000,,这个故事之所以有意思 Dialogue: 0,0:05:22.06,0:05:26.74,Default,,0000,0000,0000,,是它反映了17世纪的情况。牛顿信仰我们认为不科学的神秘论 Dialogue: 0,0:05:26.90,0:05:31.11,Default,,0000,0000,0000,,那时已知的星球有七个 Dialogue: 0,0:05:31.11,0:05:35.32,Default,,0000,0000,0000,,牛顿认为颜色的数量应该跟星球的数量一致 Dialogue: 0,0:05:35.32,0:05:39.59,Default,,0000,0000,0000,,于是他就硬加上靛青,凑个数 Dialogue: 0,0:05:39.59,0:05:44.87,Default,,0000,0000,0000,,好的,我要弄一个方案 Dialogue: 0,0:05:44.87,0:05:50.96,Default,,0000,0000,0000,,将特定的颜色编译成一个叫 RGB 的颜色方案。RGB 代表红绿蓝 Dialogue: 0,0:05:50.96,0:05:56.36,Default,,0000,0000,0000,,其中的原理,或者问题在于我要有一种方式 Dialogue: 0,0:05:56.36,0:06:01.91,Default,,0000,0000,0000,,来编译网格里每一种颜色是什么 Dialogue: 0,0:06:01.91,0:06:06.65,Default,,0000,0000,0000,,在 RGB 方案里,要用纯红光、纯绿光和纯蓝光 Dialogue: 0,0:06:06.65,0:06:12.13,Default,,0000,0000,0000,,用不同的组合来混合这些颜色,使之能形成不同种类的颜色 Dialogue: 0,0:06:12.13,0:06:17.61,Default,,0000,0000,0000,,我就不细讲这一点,这里有一个很好的示范 Dialogue: 0,0:06:17.61,0:06:21.93,Default,,0000,0000,0000,,我要登录 RGB Explorer 这个网页,这样我就可以做示范 Dialogue: 0,0:06:21.93,0:06:26.13,Default,,0000,0000,0000,,在左边,有三个滑动条 Dialogue: 0,0:06:26.13,0:06:30.53,Default,,0000,0000,0000,,这一个控制红光,我们要给它们赋值 Dialogue: 0,0:06:30.53,0:06:34.87,Default,,0000,0000,0000,,当红光滑动条移到全黑时,值为0 Dialogue: 0,0:06:34.87,0:06:39.48,Default,,0000,0000,0000,,调高最高时,值为255。 Dialogue: 0,0:06:39.48,0:06:43.82,Default,,0000,0000,0000,,在滑动条的下端,你可以看到滑动条上颜色的值。 Dialogue: 0,0:06:43.82,0:06:48.38,Default,,0000,0000,0000,,这里有红色滑动条、产生绿光的绿色滑动条和产生蓝光的蓝色滑动条 Dialogue: 0,0:06:48.38,0:06:52.83,Default,,0000,0000,0000,,RGB 方案使用的策略是 Dialogue: 0,0:06:52.83,0:06:58.21,Default,,0000,0000,0000,,用三个按钮来改变红光、绿光和蓝光的亮度 Dialogue: 0,0:06:58.21,0:07:03.66,Default,,0000,0000,0000,,这样,你就可以通过结合红、绿、蓝的恰当比例来产生任何颜色 Dialogue: 0,0:07:03.66,0:07:07.92,Default,,0000,0000,0000,,很明显,如果我要产生红色,就调到最高 Dialogue: 0,0:07:07.92,0:07:11.70,Default,,0000,0000,0000,,同样,如果要产生绿色,将绿色调到最高 Dialogue: 0,0:07:11.70,0:07:15.87,Default,,0000,0000,0000,,掉到最高时,颜色非常亮 Dialogue: 0,0:07:15.87,0:07:19.56,Default,,0000,0000,0000,,要深绿色的话,可以先调到绿色 Dialogue: 0,0:07:19.56,0:07:23.54,Default,,0000,0000,0000,,再往回调,就是深绿色 Dialogue: 0,0:07:23.54,0:07:27.61,Default,,0000,0000,0000,,在左边,数字0代表的是黑色 Dialogue: 0,0:07:27.61,0:07:31.54,Default,,0000,0000,0000,,产生绿色时,往黑色那边调,就是深绿色。 Dialogue: 0,0:07:31.54,0:07:35.67,Default,,0000,0000,0000,,如果要产生白色 Dialogue: 0,0:07:35.67,0:07:40.16,Default,,0000,0000,0000,,我将红色调到最高 Dialogue: 0,0:07:40.16,0:07:46.07,Default,,0000,0000,0000,,也把绿色和蓝色调到最高,就是白色了。所有值都是255,就是白色 Dialogue: 0,0:07:46.07,0:07:51.62,Default,,0000,0000,0000,,将全部颜色都调到最低,全部都是0,就是黑色 Dialogue: 0,0:07:51.62,0:07:56.41,Default,,0000,0000,0000,,我来展示一些颜色组合 Dialogue: 0,0:07:56.41,0:08:01.06,Default,,0000,0000,0000,,我想最有趣的是红色加绿色。如果我将红色调到最高 Dialogue: 0,0:08:01.06,0:08:05.96,Default,,0000,0000,0000,,将绿色也调到最高,就得到黄色 Dialogue: 0,0:08:05.96,0:08:10.73,Default,,0000,0000,0000,,要黄色暗一点的话 Dialogue: 0,0:08:10.73,0:08:15.32,Default,,0000,0000,0000,,将红色和绿色都往回调一点,往黑色那边调一点,就有暗黄色 Dialogue: 0,0:08:15.32,0:08:20.16,Default,,0000,0000,0000,,如果继续,黄色就更暗了 Dialogue: 0,0:08:20.34,0:08:24.63,Default,,0000,0000,0000,,要产生橙色的话,我想橙色有点像黄色 Dialogue: 0,0:08:24.63,0:08:28.44,Default,,0000,0000,0000,,但不是红色和绿色的比例都差不多 Dialogue: 0,0:08:28.44,0:08:32.65,Default,,0000,0000,0000,,红色要多一点,这里是红色和绿色 Dialogue: 0,0:08:32.65,0:08:36.52,Default,,0000,0000,0000,,将红色多调一点,将绿色调少一点,就是橙色了 Dialogue: 0,0:08:36.52,0:08:41.41,Default,,0000,0000,0000,,有点像锥形路边警告筒的样子,好看的橙色 Dialogue: 0,0:08:41.41,0:08:46.38,Default,,0000,0000,0000,,这只是让你大致了解一下如果通过调整来产生许多好玩的颜色 Dialogue: 0,0:08:46.57,0:08:51.41,Default,,0000,0000,0000,,我还想再试一下 Dialogue: 0,0:08:51.41,0:08:56.50,Default,,0000,0000,0000,,是的,产生了浅绿色 Dialogue: 0,0:08:56.50,0:09:01.39,Default,,0000,0000,0000,,我来给你看看如何产生淡黄色,这里红色和绿色都调到最高 Dialogue: 0,0:09:01.39,0:09:05.85,Default,,0000,0000,0000,,就产生了很亮的黄色 Dialogue: 0,0:09:05.85,0:09:10.25,Default,,0000,0000,0000,,淡黄色是比较分散、朦胧的颜色 Dialogue: 0,0:09:10.25,0:09:15.01,Default,,0000,0000,0000,,产生淡黄色的作法是添加蓝色,我将蓝色调到180,185 Dialogue: 0,0:09:15.01,0:09:19.42,Default,,0000,0000,0000,,如你所见,这还是黄色,不过是淡黄色,有点朦胧 Dialogue: 0,0:09:19.42,0:09:24.17,Default,,0000,0000,0000,,我们可以这样要理解这一点 Dialogue: 0,0:09:24.17,0:09:28.48,Default,,0000,0000,0000,,假如全部颜色都调到最大,就是白色 Dialogue: 0,0:09:28.48,0:09:32.83,Default,,0000,0000,0000,,将蓝色调高,颜色稍稍变白,但不是纯白 Dialogue: 0,0:09:32.83,0:09:37.81,Default,,0000,0000,0000,,红色和绿色比蓝色少一点,就是黄色 Dialogue: 0,0:09:37.81,0:09:42.79,Default,,0000,0000,0000,,这些知识对这么课的作用是,我不要求你知道 Dialogue: 0,0:09:42.79,0:09:47.49,Default,,0000,0000,0000,,你只要可以填三个数字产生某种颜色就行了 Dialogue: 0,0:09:47.49,0:09:52.41,Default,,0000,0000,0000,,你明白有通过改变红、绿、蓝来产生颜色的基本方案就可以了 Dialogue: 0,0:09:52.41,0:09:57.36,Default,,0000,0000,0000,,我还要调一个颜色给你看 Dialogue: 0,0:09:57.36,0:10:01.94,Default,,0000,0000,0000,,我们有红、绿、黄,这很重要 Dialogue: 0,0:10:01.94,0:10:07.43,Default,,0000,0000,0000,,我们来组成其他组合。蓝和绿可以组成蓝绿色 Dialogue: 0,0:10:07.43,0:10:12.53,Default,,0000,0000,0000,,最后一个组合是红加蓝 Dialogue: 0,0:10:12.53,0:10:17.90,Default,,0000,0000,0000,,红加蓝是紫,看起来确实是红和蓝的组合 Dialogue: 0,0:10:17.90,0:10:23.40,Default,,0000,0000,0000,,好的,我们返回到我们的图像 Dialogue: 0,0:10:23.40,0:10:28.50,Default,,0000,0000,0000,,我们知道一个概念,就是你可以将红光、绿光和蓝光混合在一起 Dialogue: 0,0:10:28.50,0:10:34.44,Default,,0000,0000,0000,,就这个图像而言,我有其全部的像素 Dialogue: 0,0:10:34.44,0:10:40.00,Default,,0000,0000,0000,,每一个像素都会有一种颜色 Dialogue: 0,0:10:40.00,0:10:45.02,Default,,0000,0000,0000,,这种颜色是由红、绿、蓝的深浅决定的 Dialogue: 0,0:10:45.02,0:10:50.46,Default,,0000,0000,0000,,或就数字而言,每个像素都有三个值。 Dialogue: 0,0:10:50.46,0:10:55.82,Default,,0000,0000,0000,,可以说,红色是250,绿色是10,蓝色是240 Dialogue: 0,0:10:55.82,0:11:01.19,Default,,0000,0000,0000,,我的意思是,这个像素是250、10、40 Dialogue: 0,0:11:01.19,0:11:07.72,Default,,0000,0000,0000,,顺序是红色的值、绿色的值和蓝色的值,我在这里重新定义这张图 Dialogue: 0,0:11:07.72,0:11:13.67,Default,,0000,0000,0000,,这里是我的像素网格,是构成图像的 Dialogue: 0,0:11:13.67,0:11:19.08,Default,,0000,0000,0000,,有前面讲过的 x 和 y Dialogue: 0,0:11:19.08,0:11:24.91,Default,,0000,0000,0000,,每一个这些像素都会有自己的三个值 Dialogue: 0,0:11:24.91,0:11:31.27,Default,,0000,0000,0000,,这个是6,2,57。6很低,绿色是250,很高,蓝色是7,很低 Dialogue: 0,0:11:31.27,0:11:37.54,Default,,0000,0000,0000,,基本上是绿色,对吧?绿色的值很高 Dialogue: 0,0:11:37.54,0:11:41.87,Default,,0000,0000,0000,,这个像素可能是241,252,23。红和绿的值都很高,蓝色的值很低 Dialogue: 0,0:11:41.87,0:11:45.93,Default,,0000,0000,0000,,基本上就是黄色。 Dialogue: 0,0:11:45.93,0:11:49.94,Default,,0000,0000,0000,,我调整滑动条时,我趋向于调到255或0 Dialogue: 0,0:11:49.94,0:11:53.51,Default,,0000,0000,0000,,在现实世界中拍数码照片时,经常会有如237或26这样的中间值 Dialogue: 0,0:11:53.51,0:11:56.89,Default,,0000,0000,0000,,这些数字混合起来产生某种颜色 Dialogue: 0,0:11:56.89,0:12:00.95,Default,,0000,0000,0000,,这就是我们目前给图像下的临时定义 Dialogue: 0,0:12:00.95,0:12:04.82,Default,,0000,0000,0000,,这里有一个像素的网格 Dialogue: 0,0:12:04.82,0:12:09.50,Default,,0000,0000,0000,,每个像素显示一种颜色 Dialogue: 0,0:12:09.50,0:12:16.12,Default,,0000,0000,0000,,每种颜色用三个数字来表示 Dialogue: 0,0:12:16.12,0:12:23.18,Default,,0000,0000,0000,,回顾一下,我们从这张图像开始 Dialogue: 0,0:12:23.18,0:12:27.60,Default,,0000,0000,0000,,我将它缩减成有多个数字组成的网格 Dialogue: 0,0:12:27.60,0:12:32.07,Default,,0000,0000,0000,,在计算机科学里,这是一个很常见的主题 Dialogue: 0,0:12:32.07,0:12:36.54,Default,,0000,0000,0000,,先从整个图像、整段音频或整部百科全书开始 Dialogue: 0,0:12:36.54,0:12:41.18,Default,,0000,0000,0000,,作为人类,我们把这些事物视作一个有机的整体 Dialogue: 0,0:12:41.18,0:12:46.04,Default,,0000,0000,0000,,在计算机里,所有数据都不可避免地有一个组织方案,将这些事物分解成多个小数字 Dialogue: 0,0:12:46.04,0:12:50.63,Default,,0000,0000,0000,,这就是计算机的表现事物的形式 Dialogue: 0,0:12:50.63,0:12:55.10,Default,,0000,0000,0000,,我们可以将它视作是数字运算。如果我要拍张图片,将它变亮一点 Dialogue: 0,0:12:55.25,0:12:59.20,Default,,0000,0000,0000,,在计算机里,我们要将它转换成数字运算 Dialogue: 0,0:12:59.20,0:13:03.05,Default,,0000,0000,0000,,例如,我要将一个图像调亮一点 Dialogue: 0,0:13:03.05,0:13:07.05,Default,,0000,0000,0000,,啊,我们有红绿蓝的值 Dialogue: 0,0:13:07.05,0:13:11.20,Default,,0000,0000,0000,,每个值都加10 Dialogue: 0,0:13:11.20,0:13:15.10,Default,,0000,0000,0000,,在RGB Explorer里,我将每个值往右调,调亮一点 Dialogue: 0,0:13:15.10,0:13:19.20,Default,,0000,0000,0000,,不管怎样,那是后面几部分的内容 Dialogue: 0,0:13:19.20,0:13:23.20,Default,,0000,0000,0000,,在计算机里,事物是存储在多个小数值里 Dialogue: 0,0:13:23.20,0:13:27.19,Default,,0000,0000,0000,,计算机领域就是这样 Dialogue: 0,0:13:27.19,0:13:28.46,Default,,0000,0000,0000,,我们将会碰到很多这样的情况