伽马是数字成像系统的一个重要特征,它定义了像素值与其实际亮度之间的关系。在标准显示器上面,如果没有伽马,数码相机拍摄到的阴影内容便会跟我们实际看到的有所差异。平时我们所说的伽马校正、伽马编码、伽马压缩,都是伽马曲线的各种应用场景,属于相似的概念。对于伽马工作原理的理解,一方面可以提高摄影者的曝光技术,另一方面可以帮助人们更好地利用后期的图像编辑功能。

伽马的作用

人眼视觉特性与相机的感光特性之间存在差异。相机的感光特性为线性的,如果传感器收到两倍的光子,那么响应电信号也会提升至两倍;人眼视觉特性是非线性的,感知亮度高于实际亮度,且实际亮度越小,感知亮度与实际亮度之间的差异越大。两者对应的特性曲线如下图所示。

从图中可以看到,人眼对于低亮部分的感知敏感度要高于高亮部分,从而使得视觉具有更广的亮度适应范围,一方面可以提高人类在夜晚对于危险的感知,另一方面可以避免高光造成视力损伤。

通过伽马曲线可以完成人眼与相机的感光度之间的转换,在保存数字图像时,使用伽马编码获得我们所期望的符合人眼视觉特性的亮度值。

使用伽马编码的图像可以更有效地存储色调信息。由于经过伽马编码后,更加符合人眼视觉特性,所以可以使用更少的比特位表示相同的亮度范围。线性编码与伽马编码之间的差异,如下图所示。

从图中可以看到,使用伽马编码后,整个亮度范围内的灰阶基本呈现均匀分布,从而确保了后续的图像编辑,使得颜色和直方图都能够基于自然且感知均匀的色调。

由于真实世界的图像通常至少具有256级灰阶(8bit),足以打印出平滑连续的色调内容。如果改用线性编码,则需要至少8倍的级别(11bit),才能够避免图像分色。

伽马编码与伽马校正

经由伽马编码的图像,在观看时,必须先进行伽马校正,从而保证输出原始场景内容。也就是说,伽马编码的目的是记录图像,而伽马校正的目的是真实地显示图像,其组合应用流程如下图所示。

1. 图像伽马

每当将拍摄的图像转换为JPEG或TIFF文件时,可以通过操作相机或者RAW开发软件应用该功能。它可以将色调级别映射到感知均匀,从而更好地利用给定的位深。

2. 显示伽马

视频卡或者显示设备的综合影响,通常可能会包含多组伽马曲线。显示伽马的主要目的是用于补偿图像伽马,从而确保显示的图像不会过亮。对于高对比度图像,如果显示伽马过大,可能导致暗部细节损失。

3. 系统伽马

整个图像处理流程的所有伽马的叠加效果,也称为“观看伽马”。为了能够重视再现原始场景,理想情况下,它应该是一条直线,即gamma = 1.0,有时,为了提高画面对比度,可以将系统伽马设定为大于1.0的值,从而补偿由于显示设备的动态范围或者非理想观看条件和图像光斑所引起的显示限制。

图像文件的伽马

精准的图像伽马通常会采用配置文件的形式嵌入在图像文件中。大多数的图像文件(使用sRGB和Adobe RGB 1989色彩空间的图像)均会采用1/2.2的编码伽马,RAW文件是个例外,它会使用线性伽马。但是,在使用RAW图像查看工具时,会假定标准编码伽马为1/2.2,否则显示的图像会偏暗,如下图所示。

对于没有嵌入配置文件的图像,通常也会假定假定标准编码伽马为1/2.2。这种图像通常包括:从网页保存到本地的部分JPEG文件,以及许多PNG和GIF文件。

实际上,文件伽马代表相机伽马和编码伽马的组合。但是,因为大多数的数码相机都采用线性的感光方式,所以会将它们的伽马假定为1.0,除非相机厂商有特别的设定,才会对文件伽马有所影响。

显示伽马

显示伽马主要是对图像伽马进行补偿,用于校正显示设备或者调整显示图像的对比度,行业内通常采用2.2作为显示伽马的标准值。下图展示了显示伽马对于系统伽马的影响以及实际图像的现实效果。

从图中可以看到,图像伽马为1/2.2,对比实际拍摄场景,当显示伽马为1.0时,由于没有补偿效果,系统伽马与图像伽马一致,导致画面过亮;当显示伽马为1.8时,由于补偿不足,画面依然过亮;当显示伽马为2.2时,刚好相互抵消,系统伽马为直线,真实反映拍摄场景;当显示伽马为4.0时,由于补偿过度,导致画面过暗。

实际上,显示伽马由两部分组成:(i)原始CRT显示器或者LCD显示器本身的伽马曲线,(ii)显示器内部或视频卡所使用的伽马校正曲线。最终的显示伽马高度取决于显示设备的类型。

1. CRT显示设备

CRT的固有伽马为2.5,使用~1/1.1的校正系数,便可以达到2.2的显示伽马标准,通常制造商已经对该系数进行了默认设定。

2. LCD显示设备

LCD通常需要使用查找表(LUT)的方式进行校正,以便达到2.2的显示伽马标准。

相关知识内容

  • 动态范围:伽马编码,一方面可以确保图像数据的有效使用;另一方面,对于给定位深,它可以增加记录的动态范围。伽马还可以通过改变图像对比度,帮助显示设备或打印机管理其有限的动态范围。
  • 伽马校正:将伽马应用于抵消某些前期操作的效果。
  • 伽马压缩/扩展:分别指应用的伽马小于或者大于1.0的情况。因此,文件伽马可被视为伽马压缩,显示伽马可被视为伽马扩展。
  • 适用性:严格来讲,伽马是指遵循简单幂律的色调曲线,但是它也经常用于描述其他色调曲线。比如sRGB色彩空间,在低亮区域遵循线性规律,高亮区域遵循曲线规律,虽然都不是标准的幂律曲线,但是其总体伽马接近2.2。
  • 是否必须使用伽马?不是,比如RAW文件,因为它使用线性伽马,所以可以使用具有线性伽马的显示设备直接显示图像。

【剑桥摄影协会】伽马校正(Gamma)相关推荐

  1. OpenGL学习脚印:伽马校正(Gamma Correction)

    写在前面 由于CRT,LED等显示设备显示颜色时并非按照线性方式工作,因此我们在程序中输出的颜色,最终输出到显示器上时会产生亮度减弱的现象,这种现象在计算光照和实时渲染时对图形质量有一定影响,需要我们 ...

  2. 伽马校正(gamma correction)学习笔记

    学习HDR和Bloom特效的过程中,接触到了伽马矫正的问题.查阅了不少资料,这一篇讲的最清楚,下面的图片也是来自该文章. 这应该说是一个历史遗留问题,以前的CRT显示器是使用电子显像管,通过控制电流大 ...

  3. Gamma Correction(伽马校正)

    定义 Gamma correction, gamma nonlinearity, gamma encoding, or often simply gamma, is the name of a non ...

  4. 我理解的伽马校正(Gamma Correction)

    [图形学]我理解的伽马校正(Gamma Correction) 2015年05月30日 18:22:52 妈妈说女孩子要自立自强 阅读数:69844 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  5. OpenGL Gamma Correction伽马校正的实例

    OpenGL Gamma Correction伽马校正 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> # ...

  6. 色彩校正(CCM)和伽马校正(Gamma)

    目录 1.色彩矫正(CCM) 2.伽马校正(Gamma) 1.色彩矫正(CCM)         色彩校正(Color Correction)是指用相同的方法改变图像中的所有像素的颜色值,以得到不同得 ...

  7. 伽马校正笔记(Gamma Correction)

    在数字图像系统中,伽马(Gamma)是一个重要的但很少被正确理解的特性.它定义了一个像素的数值和对应的实际亮度之间的关系. 人眼感知的亮度和相机"看到"的亮度区别 对于数码相机来说 ...

  8. 【TA100】图形 2.6伽马(Gamma)校正

    很好的视频 https://www.bilibili.com/video/BV15t411Y7cf/?spm_id_from=333.788.b_636f6d6d656e74.96&vd_so ...

  9. 图像亮度、对比度调节(伽马校正)

    [OpenCV学习]图像亮度.对比度调节(伽马校正) 作者:gnuhpc  出处:http://www.cnblogs.com/gnuhpc/ #include "cv.h" #i ...

  10. matlab批量读取图像图片并批量处理图像(以伽马校正为例)以及批量保存图像

    文章目录 处理1张图片,获取4幅不同伽马校正图像 批量读取图片模板 批量处理多张图片,分别获取4幅伽马校正图像 参考 处理1张图片,获取4幅不同伽马校正图像 实验结果 实验代码 get_4_pictu ...

最新文章

  1. h1.1 hadoop简介
  2. python与c语言在语法上的区别-C语言和Python编程先学习哪个
  3. 简单的树形dp NOJ376 小强的Linux
  4. CSS3 box-sizing(content-box:width指内容 border-box:width指border+padding+content)
  5. 从Java程序生成QR码图像
  6. 既然开发了 飞鸽传书 就一定要帮助人
  7. PostgreSQl中 index scan 代价的进一步学习
  8. JavaScript文档对象模型document对象获取自定义属性值和设置移除自定义属性(5)
  9. 汇编学习--7.17--键盘输入和磁盘读写
  10. MySQL 8 新特性之持久化全局变量的修改
  11. VSS 2005使用
  12. Win10如何用命令行查看MD5
  13. python好用的内置库_python内置的高效好用各种库
  14. 清除博科光纤交换机所有配置信息
  15. okhttp返回内容乱码_tomcat服务器接口返回的数据乱码
  16. Book04--修改软件的艺术:构建易维护代码的9条最佳实践
  17. 3d布衣天下1手机调试html,真精华布衣天下3d
  18. Win11删除英文输入法的方法教程
  19. 《哪吒》票房直指40亿,闯中国影史前三!导演饺子:最怕你的梦想只有一腔热血
  20. 阿里云解析是什么?个人版和企业版有什么区别?

热门文章

  1. python ppt_从 Python 中学习 PPT 制作技巧
  2. QNX系统获取PPS属性值
  3. 架构经验:微商城生态解决方案
  4. diy服务器个人主机_DIY双路服务器之个人主机
  5. 软件设计与体系结构:设计过程
  6. 为什么低通滤波器的作用相当于积分器
  7. 7-2 两个有序链表序列的合并 (20分)
  8. 使用Python下载本地的m3u8文件
  9. 02【需求调研】的概念,包括那些内容,有哪些方法?
  10. 华为Push最新版接入(Mac)