认真阅读Q1-Q3你会对太阳的颜色产生新的认识Q1
为什么太阳看起来是黄色的,但发出的光是白色的?
by 匿名
答:Q2太阳辐射本身并不是白色的,甚至在不同的位置颜色也不同。我们平常说的“太阳发白光”的含义应该理解成“晴朗白天海平面附近看到的太阳光是白色的”——这种光用来做牛顿的三棱镜实验就会看到七彩的色散。那么晴朗白天太阳看起来是什么颜色呢?经验上我认为是白色的,至于有没有偏黄,我实在没办法“张目对日,明察秋毫”。
不同位置的太阳辐射谱
那么太阳什么时候显黄色呢?并不在晴朗白天,而是在晨昏,或者雾霾天。为什么这些时候看过去太阳发黄呢?这就涉及到了瑞利散射。
光在传播过程中遇到微粒会被散射到其他方向。如果微粒大小与光波长相近,并且散射的具体行为与频率有关[此处省略若干公式],那么这种散射就被称为瑞利散射。大气对阳光的散射就是这种情况。散射最强烈的波长刚好对应蓝紫色光,也就是可见光中的短波成分。晴朗白天,太阳辐射经过大气的散射以后,损失掉了一些短波成分,到达地面看起来是白色。晨昏时阳光在大气中穿越的距离变长,损失的短波成分更多,太阳就显出长波段的红到黄色;雾霾天大气中微粒浓度变大,散射能力变强,阳光损失的短波成分也比晴天多,太阳看上去也是黄色。
by 藏痴
Q.E.D.
手机相册中滤镜的原理是什么?
by 崔九
答:想要明白滤镜是怎么工作的,首先要知道彩色照片在我们的手机里是怎样储存的。我们用手机拍摄的一张彩色照片是由几百万个像素(pixel)组成。照片的每个像素点都是一个有特定颜色的小方块,这些像素拼在一起,组成了一张彩色照片。在手机内部的存储中,对于每一个像素,它的颜色都可以由三个数字(R,G,B)来唯一确定,R,G,B分别对应着红(Red)、绿(Green)、蓝(Blue)三个通道的颜色。R,G,B三个数字的取值范围是从0到255,0代表最暗,255代表最亮。这样三个数字的不同组合就代表着不同的颜色,例如代表红色的三个数字是(255,0,0),绿色是(0,255,0),黄色是(255,255,0),而白色是(255,255,255)。如果想知道更多颜色对应的(R,G,B)数值,你也可以戳图片下的链接来查询。
RGB颜色查询对照| 图源网络
滤镜的本质就是颜色的变换。我们可以把一个像素的颜色看成是三维空间上的一个坐标点,颜色变换就相当于是三维空间中从一个坐标点到另一个坐标点的映射关系。也就是:
F:(R,G,B)--->(R',G',B')
举个例子,我们想给一张彩色照片加上黑白滤镜,即让它变成R=G=B的灰度图像,一种简单的方法就是把每一个像素的(R,G,B)三个数通通都映射到K=0.30R 0.59G 0.11B。其中,RGB前面的系数来源于三原色对人眼的刺激程度,就好像在上图中,绿光看起来比红光和蓝光都亮,但其实它们在屏幕上辐射出的功率是差不多的。这种映射很符合人眼对明暗的感觉,目前广泛应用的高清视频标准PAL/NTSC制式采用的正是这种方法:
F:(R,G,B)--->(K,K,K), K=0.30R 0.59G 0.11B
黑白滤镜效果图 | 图源pexels,答主后期处理
像这样,我们就自己就实现了一个黑白滤镜的功能。类似的,程序员已经把一些写好的颜色变换程序放在手机的相机软件里,我们只需要动动手指,就可以给照片加上好看的滤镜了。当然,大部分相机里的滤镜效果实现起来并没有这么简单,颜色变换的映射关系可能是通过复杂的数学变换来实现的。
那么,我们怎么设计一种滤镜,把太阳变成绿色呢?我们试着把太阳照片每个像素的(R,G,B)中代表红色和绿色数字交换一下:
F:(R,G,B)--->(G,R,B)