06-手机怎么给我们美颜?
你好,我是悦创。
你用过手机的“美颜功能”吧?把拍好的照片,导入照片处理软件里,按一下按键,就自动变美了。有些手机照相软件,自带了美颜功能,直接一拍,什么脸上的瑕疵啊、皮肤的颜色啊,就都处理过,整个人都变得更好看了。

不过,你有没有想过一个问题啊?咱们看一个人的照片,知道哪儿是眼睛,哪儿是嘴唇,哪儿是鼻子……可手机照相软件又没有大脑,它怎么可能知道哪儿是眼睛,哪儿是嘴唇,哪儿是鼻子呢?如果分不清楚这些眼睛鼻子什么的,它又是怎么给照片美颜的呢?
区分眼睛鼻子嘴巴这件事有点复杂,我会在下一集给你详细说。今天我要给你说的是计算机是怎么识别颜色的。其实,即使分不清楚眼睛鼻子,只要能识别颜色,软件依然可以给照片做美颜。
那怎么让软件识别颜色,就是个大问题了,这就又要用到咱们前面说的“问题抽象和转化”了。今天,我就来给你说说这件事。
首先啊,我想请你观察一下家里的电脑或者电视屏幕。如果你凑近了看,就会发现,屏幕是由一个个很小的格子组成的,这些格子就叫“像素”。图像的像,要素的素,你可以就把它理解成构成图像的要素。

你家的电视机有可能是4K的,现在有些电脑屏幕也是4K的。这个4K就跟像素有关。你要是拿着放大镜,一格一格地数4K屏幕上的像素。如果没有数错的话,最后会发现,在它横着的方向上,有4096个像素,比4000略微多一点点。这就是4K,K在这里表示千的意思。
有了这些像素,屏幕就能把任何图像都显示出来了。不过,这些像素还有一个小秘密,有时候就算你拿着放大镜也发现不了。那就是,每个像素还可以分成3小格,一格红色、一格绿色、一格蓝色。
这3个小格子发出的光,决定了屏幕上显示出来的颜色,也是让计算机看见东西的关键。
在美术课上,你早就学过了,把不同的颜色调和在一起,能得到新的颜色。屏幕上的颜色也是一样的,比方说吧,红光加绿光,就变成了黄光;红光加蓝光,就是紫光,而绿光加蓝光呢,就是青色光。红光绿光蓝光掺一起就成了白光。这么一来,屏幕能显示的颜色,就多出来4种了。
而且啊,如果两种光不一样亮,也就是说它们的亮度不是1:1,而是1:2、1:3等等等等,那混合出来的颜色就又不一样了。调整每个像素里三格不同颜色的亮度,屏幕就可以显示出更多的颜色了。
那倒过来,咱们也可以用这种方式让计算机看到颜色。这就牵扯到咱们前面说的“问题转化”思想了。我们要把每种颜色的光,转化成数字来表示。
具体来说,现在的屏幕一般都会把最高亮度设置成数字255,而把最低的亮度设置成0。如果设置成0,那就相当于黑色了。这样,从0到255,红、绿、蓝每种颜色都分出了256种亮度。

3种颜色以不同的亮度排列组合起来,一共可以得到1670多万种颜色,用这么多的颜色来表现人类眼睛所看到的世界,那可真的是绰绰有余了!而且,这1670多万种颜色里的每一种,我们都可以给它一个数字编号。
比如某种颜色,红光亮度是150,绿光亮度是200,蓝光亮度是180,它的编号就是150,200,180。我在屏幕上放了一张图片,你可以看一下,这到底是一种怎样的颜色。

用数字编号表示颜色,有什么好处呢?这就是“问题转化”思维起作用的地方了,计算机虽然看不懂颜色,但它认识数字呀。通过这种方法,我们可以把任何颜色变成一串数字,计算机就可以处理了。
当然了,一张图片上一般不会只有一种颜色。没关系,我们可以把图片上每一个像素的颜色都变成一串数字,这样,在计算机眼中,一张图片就成了密密麻麻一大团数字。这样,计算机就能看懂照片了。
接下来,它就可以对图片进行处理了,也就是说,你能随心所欲地给照片美颜了!那么,美颜的时候,计算机又是怎么做的呢?
咱们前面说了,在计算机眼中,整张照片就是一大团数字。计算机科学家会先告诉计算机,哪一团数字代表眼睛,哪一团数字代表鼻子,哪一团数字代表腿等等等等。这样一来,计算机虽然看不到图案,但也能对这一团数字进行操作了。
就拿计算机美白皮肤这个操作来说吧。假设,你的脸上长了一个小小的黑点,正好占据了一个像素的位置。在这个黑点的周围,则是一大片平滑没有瑕疵的像素点,这当然就是你光滑的皮肤啦。那怎么把这个黑点去掉呢?
有一个简单的方法,那就是“取平均数”。
我们假设,这个黑点用数字表示就是0、0、0,完全是黑的,但是它周围的像素却很亮,看起来很白,计算机就可以把它和周围几个像素点的亮度取平均值。这样一来,小黑点的亮度就提高了。看起来,就是变白了。
这种方便的美白算法,离不开像素和颜色的数字化。在美颜程序里,还有很多很多的工具,比如把腿拉长,把脸变小等等。这都离不开像素的功劳。
有意思的是,在照相机刚刚发明,像素的概念还远没有出现的时代,世界上就已经存在了修改照片的技术。
那是在大约100年前的美国,当时交通还不是很发达。有很多人一辈子也没旅游过几次。于是呢,人们就制作了很多明信片售卖。这些明信片上印着各地的风景照片,虽然人没有去,但是买了明信片就相当于自己去旅游了。
不过,有些地方没有好风景,把这里的照片制作成明信片,那可真是拿不出手。那怎么办呢?
有一位聪明的摄影师就想了一个办法,把自己的家乡表现得特别美好。你可以看看音频封面上的明信片:有跟人一样大的洋葱,还有马一样大的母鸡,拉着巨大的鸡蛋!


这可能吗?当然不可能啦。其实,摄影师拍了两张照片。一张是背景照。一张是凑近了洋葱、玉米拍的特写照。两张照片拍出来之后,再把洋葱、玉米剪下来,跟另一张背景照片拼起来,然后再给它们拍进新的照片里。只要注意细节,那也会做得很逼真的!
这件事说起来简单,但在100多年前,甚至算得上是一种艺术创作了。整个美国,也就只有2名摄影师创作的夸张作品比较出名。但是现在,照片处理技术已经是人人必备的技能了。你看,把图像转换成数字,给咱们的生活带来了很大的便利吧?
回过头来想想,计算机本来没有眼睛也没有人类的大脑,没法看见咱们的世界。但是,科学家们利用编程思维里的问题转换的方法,把画面转化成了一个个小小的像素点,然后又把各种颜色的像素点转化成了计算机能够看懂的数字,这样一来,计算机就能和我们一样看见世界了。
而且,现在的计算机不光能看见世界,科学家也在教它们辨认照片里的猫猫狗狗、汽车飞机了。那具体是怎么做的呢?你可以先在留言区里,写下自己的看法。下一集,我就给你说说这个问题,我们下集见。
更新日志
28d2b
-于