跟着卷卷龙一起学 Camera--Gamma
What is gamma?
gamma 是为了让输入图像的亮暗程度更符合人眼的观感,而做的非线性映射。gamma 有在 RGB 域做的,R/G/B 共用一条 gamma 曲线。如果实在 YUV 域,则 Y/U/V 用的是不同的 gamma 曲线。gamma 的存在有两种说法,一种是为了抵消 CRT 的显示问题,而做的反 CRT gamma 处理。
另一种说法是人眼对亮暗的感受不是线性的,为了匹配人眼特性,需要做 gamma 处理。
How to do gamma?
gamma 矫正如果直接套用公式的话,效率会非常低。直接查表的话会更快,就是将每个像素点矫正过的值直接存储到一个数组中,这也是许多大厂的做法。需要降低过曝区域的图像亮度时,应该适当降低 gamma 曲线位于图像灰度值较大的一部分。对于灰度值较小的部分,调整较小。这也正符合人眼观感。如果像素点的值不在 gamma 表里,则需要进行线性插值。
对比度的调整在一定程度上说,其实也就是对 gamma 曲线的调整,增大对比度就是提 Gamma 值。对于图像处理来说,也有在硬件 gamma 校正后,单独由软件再进行一次类的幂函数变换来调整对比度。
高端相机都会对 gamma 曲线的形状有些修改,来影响亮/暗部图像的亮度,在暗区的修改叫 black gamma,增强或者减弱图像在暗处的 contrast 或者阴影。在亮区的修改叫 gamma knee,可以看到,在大于 knee point 之后信号的映射关系是线性的,这段的斜率叫 knee slope。通过调整 knee point 和 knee slope 这种操作,可以调节亮处的 contrast,也能一定程度上减小亮处信号的饱和,影响图像的动态范围.
版权声明: 本文为 InfoQ 作者【卷卷龙】的原创文章。
原文链接:【http://xie.infoq.cn/article/250bd3ea9b001c0b4c522190a】。文章转载请联系作者。
评论