什么是Gamma ?
????????伽马是科学术语,应用于光学领域。数码图像中的每个像素都有一定的光亮程度,即从黑色(0)到白色(1)。这些像素值就是输入到电脑显示器里面的信息。但由于技术的限制,纯平( CRT)显示器只能以一种非线性的方式输出这些值,在不加调整的情况下,多数CRT显示器都有一个2.5的伽马值,它的意义是:假如一个像素的光亮度为0.5,在没有颜色管理应用程序的干预下(*),它在显示器上输出的光亮度只有0.2(0.5/2.5)。
????????对于液晶显示屏(LCD ),特别是笔记本电脑的LCD来说,其输出的曲线就更加不规则。一些校准软件或硬件可以让显示屏输出图像时按一定的伽马曲线输出,例如Windows常用的伽马值为2.2,这几乎与人类视觉的反应相反。SRGB和AdobeRGB 颜色也是以2.2的伽马值为基础设立的。
显示器Gamma曲线
Gamma可能源于CRT( 显示器/电视机)的响应曲线,即其亮度与输入电压的非线性关系
归一化后,我们通常可以用一简单的函数来表示
注意上图曲线的一些特性
*端点是不变的,即不管gamma值如何变化,0对应的输出始终是0,1的输出始终是1( 这一特性会被用到 )。这可能是gamma又被叫作“灰度”系数的原因吧gamma >1时,曲线在gamma=1斜线的下方在上方。
另外说明一下,虽然是以显示器作为例子,但可扩展到一般的图像相关的输入/输出设备。Gamma曲线应该是普遍存在的即使它不是严格的指数关系,可能还是会这么通称
gamma是人眼对亮度适应的一个参数,一般用一个值来表示
计算公式: 亮度=(N/255)Gamma值
N=灰阶,这相当于一个小数的几次幂,幂越大,值反而小,故Gamma2.2比2.0的值要小,故2.0更亮些。常用的是2.2和2.4,这最适合人眼对亮度的敏感分布
RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2,而这个换算过程,称为Gamma校正
每种显示设备都有自己的Gamma值,且各不相同,但都遵循: 设备输出亮度=输入电压的Gamma次方
阴极射线管显示器(CRT): 显示出来的亮度是输入电压的2.2次方,因此CRT的Gamma值就是2.2 ;我们可以通俗的来理解Gamma值: 显示器显示出来的颜色是原来颜色的Gamma次方;
Gamma 2.2通常是大多数显示器的大概平均值,也是家用显示设备的一个标准;
Gamma偏大,则整体图像会感觉偏暗,图像暗场景中的细节容易丢失
Gamma偏小,则整体图像会感觉偏亮,图像变得朦胧,层次感变差
很显然,Gamma的变化带来亮度的变化。而单独改变某个通道的Gamma,则会则会带来色调 ( Hue )的变化.
当然,如果显示器偏色,我们则可以改变某个通道的Gamma使其总体上保持均衡.
为什么校正Gamma ?
所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果 ;
> 由于我们在程序中设置的颜色值是线性的,但实际表现出来的却是非线性的,或者说是不理想的,如果我们想表达出理想中的颜色,就要对即将显示的颜色进行校正,
据显示设备的特性,显示器在显示颜色时自动执行了颜色的Gamma次方所以显示器对于进行过Gamma校正的颜色,最后恰好显示出了他本身的颜色,完美 ;
没有经过Gamma矫正的设备会影响最终输出图像的颜色亮度,比如一种颜色由红色和绿色组成,红色的亮度为50%,绿色的亮度为25%,如果一个未经过Gamma矫正的CRT显示器的Gamma值是2.5,那么输出结果的亮度将分别为18%和3%,其亮度大大的降低了。
红线表示显示器的伽马值,蓝线表示摄像机保存图片时进行的校正,紫线表示二者合成之后的结果。可以看出,显示器的gamma值越高,图像越偏暗。SRGB标准中,默认显示设备的gamma值为2.2。