您的位置:首页 > 其它

关于Gamma Correct的讲述

2016-09-28 22:45 211 查看
http://blog.csdn.net/candycat1992/article/details/46228771

下面是个人通过查找一些资料和上文的阅读体会:

1.  关于人眼

     人眼对暗部的变化更加敏感,而对亮部变化其实不是很敏感。也就是说,人眼认为的中灰其实不在亮度为0.5的地方,而是在大约亮度为0.18的地方(18度灰)。如此可得,如果我们在图片中直接存储
亮度值(相等间隔的离散值, 占用8比特),那么关于人眼感触到的暗色部分将占很少比重;为了能够更多第存储暗色部分,那么就需要一个encoding gamma,对原始的亮度值进行一个转换,  Inew = Iorg^(1/encoding gamma); 这样对In进行离散存储的话就意味着Iorg<0.5的部分离散值比较多些(更好地表达了暗色部分)。



2. 关于display gamma

    display gamma是CRT的物理特性,即 屏幕上的荧光粉亮度 = 输入电压(等于输入的亮度) ^ display gamma。 经过encoding gamma编码的亮度值经过CRT的转换到屏幕就成了:  人眼看到的亮度 = (Iorg ^ (1/encoding gamma)) ^ display gamma。如果encoding
gamma等于display gamma,那么人眼看到的就是原始的亮度值。  做个试验: 打开bmp编辑器,做一个颜色块,将RGB的值调整为127,127,127(即0.5, 0.5, 0.5)。



那么屏幕上的亮度值是多少呢?  I = 0.5 ^(display gamma),如果display gamma为2.2,则 I=0.2176,  如此验证了1中人眼的感触问题。也从这里可以得到,我们图片存的并不是实际显示出的亮度值 而是  I ^(1/ display gamma)。

3. 相机拍摄的照片

    相机的电子光学元件感受到的就是实际的亮度值,如果经过encoding gamma编码,存储到图片, 然后经过显示屏预览(有display gamma),如果encoding gamma == display gamma,那么最终传到眼睛里的就是实际的亮度值。

总结:

         上述参考的文章中说gamma跟眼睛有关系,我认为是对的也不对:

         1. 对的是因为眼睛对亮度的感受不呈线性,所以需要保存更多的低亮度部分,出现了encoding gamma,这个encoding gamma值也是根据人眼的感受来算出的一个值,最大化地存储低亮度部分。

         2. 不对的是因为 display gamma是CRT造成的,这个跟眼睛是没有关系的。显示器的就是要如实地激发出实际的亮度值,至于你眼睛的体会那是另外一回事。

我们一直被(0.5,0.5,0.5)应该表示中灰色这个直觉误导了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: