关于Gamma Correct的讲述

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)应该表示中灰色这个直觉误导了!!


下面是QQ聊天记录:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值