zoukankan      html  css  js  c++  java
  • Gamma(1)

    目前为止看到的解释Gamma来由说得最清楚的一篇文章:https://www.cambridgeincolour.com/tutorials/gamma-correction.htm

    几点总结。

    1,什么是Gamma?

    Gamma定义为 Vout=Vin^gamma,其中Vin是输入/实际的亮度,Vout是输出亮度。

    为什么会出现Gamma这个概念?主要2个原因。

    (1)与机械不同,人眼对光强度的感应不是线性的。在黑暗的环境中,人眼对等量的亮度变化更加敏感。

    gamma_chart1e

    由上图可以,当gamma值大于1时,曲线朝下凸;当gamma值小于1时,曲线朝上凸。因为亮度坐标是归一化的。

    上图中人眼的gamma curve为1/2.2。

    (2)照相机等电子设备存储图片时,有2中存储方案。

    image

    例如用5-bit表示颜色,用linearly encoded的方法时,在灰度之间平均分配比特数;用gamma encoded的方法时,给较小的灰度分配较多的比特。目前在电子设备中存储图像时,大都使用gamma encoded的方法。因为假如使用linearly encoded,图像洗刷出来时,为保证图像边界的平滑和连续,实际上会需要更多比特存储图像,否则会出现image posterization的现象。

    image

    刷海报时,海报墨迹未干,墨水会朝着下框汇聚成梳齿状。

    据统计,如果使用linearly enocded,8-bit bpc的图像,为了防止posterization,实际上会需要11比特。

    2,gamma encoded是一种图像存储方法,不是图像显示方法。

    3,gamma correction, gamma encoding和camma compression其实是一回事。

    4,viewing gamma/system gamma

    image

    image

    5,CRT显示器与LCD显示器的Gamma

    (1)非常巧合的是,CRT自身就有一个约2.5的gamma,几乎刚刚好与人眼的gamma成倒数关系。因此对于一个 1/2.2 gamma encoded的图像,其几乎可以直接用于CRT显示。

    (2)对于LCD显示器,需要用LUT实现一个2.2的gamma。

  • 相关阅读:
    CustomDrawableTextView
    Snippet: align a TextView around an image
    How to import library ?
    Gradle自定义你的BuildConfig
    使用adb shell dumpsys检测Android的Activity任务栈
    Activity intent经常使用的 FLAG
    使用 ContentProviderOperation 来提升性能
    幻方算法
    自己制作的粉碎机批处理程序
    Ubuntu 16.10 server 相关
  • 原文地址:https://www.cnblogs.com/freshair_cnblog/p/11466020.html
Copyright © 2011-2022 走看看