大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
伽马是数字成像系统的一个重要特征,它定义了像素值与其实际亮度之间的关系。在标准显示器上面,如果没有伽马,数码相机拍摄到的阴影内容便会跟我们实际看到的有所差异。平时我们所说的伽马校正、伽马编码、伽马压缩,都是伽马曲线的各种应用场景,属于相似的概念。对于伽马工作原理的理解,一方面可以提高摄影者的曝光技术,另一方面可以帮助人们更好地利用后期的图像编辑功能。
伽马的作用
人眼视觉特性与相机的感光特性之间存在差异。相机的感光特性为线性的,如果传感器收到两倍的光子,那么响应电信号也会提升至两倍;人眼视觉特性是非线性的,感知亮度高于实际亮度,且实际亮度越小,感知亮度与实际亮度之间的差异越大。两者对应的特性曲线如下图所示。
从图中可以看到,人眼对于低亮部分的感知敏感度要高于高亮部分,从而使得视觉具有更广的亮度适应范围,一方面可以提高人类在夜晚对于危险的感知,另一方面可以避免高光造成视力损伤。
通过伽马曲线可以完成人眼与相机的感光度之间的转换,在保存数字图像时,使用伽马编码获得我们所期望的符合人眼视觉特性的亮度值。
使用伽马编码的图像可以更有效地存储色调信息。由于经过伽马编码后,更加符合人眼视觉特性,所以可以使用更少的比特位表示相同的亮度范围。线性编码与伽马编码之间的差异,如下图所示。
从图中可以看到,使用伽马编码后,整个亮度范围内的灰阶基本呈现均匀分布,从而确保了后续的图像编辑,使得颜色和直方图都能够基于自然且感知均匀的色调。
由于真实世界的图像通常至少具有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文件,因为它使用线性伽马,所以可以使用具有线性伽马的显示设备直接显示图像。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189987.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...