Gamma校正 (Gamma Correction)
人类眼球的感光细胞中,在正常的光照环境下(非绝对黑暗和绝对明亮中),对较暗色调之间的差异,比对较亮色调的差异的反应更强烈。这个跟照相机的实际上的光照强度值是不一样的,所以,人类眼球对光强度的反应是非线性的。
光的物理强度,指的是光源发射光子的数量。为了让显示器的亮度更加适合我们的人眼的感光强度,应该将显示器的配置是非线性的亮度配置。
点线代表线性颜色/亮度值,实线指的是显示器配置的非线性显示曲线。
所以,颜色在输出到显示器之前,会经过Gamma校正
Gamma矫正(Gamma Correction)的思路是在最终的颜色输出上应用显示器Gamma的倒数。
在图片显示之前对其进行gamma校正,然后显示器会对其进行gamma映射,
+ =
这样的话,显示器显示的图像又变回到跟之前的颜色一样的。
但我们调解显示器的显示光强度的时候,调解的指数虽然是线性的,但因为其本身的非线性映射,会让我们的人类眼睛得到一种线性变化光强度的感觉。
Gamma的概念是非线性的,其符合指数定律:
可以转变为:
其中,r就是gamma值。
举个例子:其中暗红色(0.5, 0, 0), 经过gamma correction之后变成
Math.pow((0.5, 0, 0), 1/2.2) = (0.73, 0, 0)
在很多的计算机显示系统中,图片被gamma=0.45进行编码而被显示器进行gamma=2.2的解码。很多显示系统都使用了sRGB颜色空间,基于gamma2.2的颜色空间被成为是sRGB颜色空间。