gamma correction
Gamma 公式:
Vout = Vin ^ gamma
Gamma 的产生原因:
1. 人眼对初始亮度的敏感性和相机对亮度线性检测的冲突
如上图,对于相机来说,当实际的亮度增加两倍时,相机检测到的亮度增加了两倍,两者是一种线性的关系;对于人眼,这种变化是非线性的(即对于上述的Gamma公式,gamma值往往小于1)。也就是说,当整体亮度较暗时,实际亮度增加相应的人眼的检测亮度变化比较剧烈,即人眼对于初始亮度变化比较敏感;当整体亮度较亮时,实际亮度增加相应的人眼的检测亮度变化比较缓慢,即人眼对于高亮度的变化感知不是很强烈。
由于这一因素的影响,往往在相机内部等进行图像保存时,会隐式的进行图片的Gamma Encode,来模拟人眼的亮度检测规律。当我们需要在屏幕上对真实的亮度进行显示时,需要再次进行gamma correction来消除前面Gamma Encode所造成的影响。
2. 基于Gamma编码的颜色空间可以降低存储所需的bit
基于人眼对过高亮度的不敏感的特点,在颜色空间中可以不必过多的细分较高的亮度,所以我们采用256(即8bits)即可以满足对图像各个层次描述的需求;而如果我们以相机那种线性的检测为基准,那么对于高亮度的细分将导致我们可能会用更多的bits来实现,而且很多是不必要的。
Gamma 的应用
1. Gamma可以一定程度上提高图片的对比度,动态的扩大颜色范围
2. Gamma Correction
Gamma Correction 是相对与之前的Gamma Encode来说的,为了消除Gamma Encode的影响
3. Gamma Compression & Gamma Expansion
当gamma > 1的时候为Gamma Expansion
当gamma < 1的时候为Gamma Compression
4. For Noise
对于未经Gamma处理的相机拍摄的图片来说,往往存在随着亮度逐渐变暗,将会有更多的噪点的问题。进行Gamma Correction时,gamma > 1 时, 暗处的噪点将会被压缩;亮处的噪点虽然会被放大,但是由于人眼对于高亮度的不敏感特点,所以不会被感知到。从而实现对整体的噪点的一个优化效果。而gamma < 1 时正好相反。
在实际应用中,我们往往不会直接使用Gamma函数,而是在亮度较暗时,使用线性函数,在亮度较高时使用非线性函数来最终达到接近Gamma函数的效果。
参考资料
【1】understandING GAMMA CORRECTION
相关阅读
1. Gamma 分布 1.1 首先要了解一下Gamma 函数。 Gamma 函数在实数域可以表示为:Γ(x)=∫0∞tx−1e−tdt\Gamma(x)=\int_0^{\inf
1. Gamma 值 2. Gamma校正 2.1 使用OpenGL内建的sRGB帧缓存 2.2 在片元着色器中自己应用gamma校正 3. sRGB纹理 3.1 使用 与 实
【概率论】5-7:Gama分布(The Gamma Distributions Par
title: 【概率论】5-7:Gama分布(The Gamma Distributions Part I)categories:- Mathematic- Probabilitykeywords:- The Gamma D
gamma校正原理:假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 ~ 1 之间
如何理解正态倒伽马分布(Normal-inverse-gamma distri
Normal-inverse gamma distribution 又称 normal-scaled inverse gamme distriution。它是正态分布的先验分布。 但是根据我的观