伽马校正探究

article/2025/7/27 19:11:24

        关于伽马校正的前因后果,在网上有不同版本的说法,由于年代久远的因素,导致原本很简单的事情越说越复杂。今天我们的目标就是抓住伽马的头,而不是摸一下伽马的尾巴。

 

一,鱼龙混杂的论调

1,CRT 显示器的物理属性非线性引起

        这一切要从CRT的特性说起, CRT显示器是靠电压来驱动一个能够发射电子束的电子枪来击打荧光屏上的三种荧光粉,使其发出RGB三种颜色的光,通过调节电压的方向可以改变电子束击打在屏幕上的位置,实现扫描,并根据输入信号的大小来调节电压的大小从而改变荧光粉发出光的明暗。但是,电压的大小与荧光粉发出光的明暗之间并不是一个简单的线型关系,在大部分区间,两者之间是一个幂函数关系。通常这里的伽马值取2.2。

          

 2,人眼对自然亮度感知是非线性的引起

        通常人眼对于亮度的感知是不均匀的。在一个黑暗的房间里面点亮一根蜡烛后,可以感受到明显的光明,而继续点亮第二根蜡烛却没有第一根蜡烛的作用明显。原因在于每增加单位亮度感知,需要增加单位亮度的伽马次方的激励。对于这种感知的测试实验有两个著名的人物,分别是韦伯和史蒂芬斯。下面是人眼的感知曲线图。

3,非线性存储节省内存空间引起

        依据于人眼对于暗部信息的敏感度更强,当摄像机拍摄视频后在数字量化编码的过程中,如果均匀分配量化区间,那么会导致暗部的信息丢失,而亮部信息的冗余。这样的丢失和冗余是因为人的眼睛造成的。那么为了消除这样的问题,在OETF阶段做一次伽马编码,通常这里的伽马值取0.45。

 二、抓住伽马的头

        通过多方查找资料,我认为伽马的起源还是来自于CRT显示器的传说,原因有如下几点:

1,CRT显像管具有调制特性 

        

         这里的电压和电流之间的关系已经撇开了人眼的观察,是一个纯粹的物理量,也就是说电压值跟物理亮度之间是幂的关系。

2,CRT显示器出现的年代更早   

        世界上最早发明阴极显像管是1895年,而最早发明数码摄像机是1985年,两者相差大概一百年的时间。对于为了优化存储空间而进行的伽马编码压缩,只有在数字电子产品出现之后才有意义,对于模拟时代的产品来说,使用的模拟电路实现伽马压缩不存在内存空间优化的事情。因此第3种论调不攻自破。

3,为了匹配人眼的感知毫无意义

        人的眼睛天生就是看东西的,这种看体现在真实的感官之上。那么摄像机拍摄视频,显示器显示视频,需要做到的就是要自然的表现自然的东西,意思就是原始世界是一朵红色的花,显示器上也展示一朵红色的花,这时候人眼看起来就毫无违和感,所以伽马校正的起源跟人眼没有关系。因此第2种观点也站不住脚。

三,伽马概念的推广

        1,CRT显示器的伽马值是2.2(准确的说是行业里面大多数厂家趋于这个数值),那么就逼迫摄像机厂家的伽马值是1/2.2=0.45,这样二者级联之后的伽马值就是1,也就是线性的船体函数。

        2,在CRT显示器淘汰之后,在LCD里面人为的添加了一个LUT伽马映射表去模拟CRT显示器的特性,这是为了兼容历史的基因,这个CRT的基因衍生了许多的摄影素材,摄影设备。

        3,为了满足不同场合的显示需求,经常需要微调伽马的数值,这是因为不同的环境会影响显示的效果。电影院的系统伽马值可能需要1.5,而普通室内的系统伽马值可能只需要1.2左右。下图是BT709对于伽马压缩的规定,并不是严格的0.45.

        

        本文的最后附上韩世麟讲解的视频,虽然对于伽马的起源说法是错的,但是从另一个角度看问题,确实也能学到挺多知识。

       1: Gamma校正与线性工作流入门讲解_哔哩哔哩_bilibili

       2:《美术中灰色的物理光强——演示人眼亮度感知的非线性》

        


http://chatgpt.dhexx.cn/article/IRPWgHwk.shtml

相关文章

图像的伽马校正

图像的伽马校正 图像的伽马校正属于图像增强中幂次增强&#xff0c; γ>1时&#xff0c;使图像变暗&#xff0c;即图像变黑&#xff1b; γ<1时&#xff0c;使图像变亮&#xff0c;即图像变白。 下面是伽马校正的过程&#xff1a; 1&#xff09;将像素值为【0,255】如2…

伽马校正笔记(Gamma Correction)

在数字图像系统中&#xff0c;伽马&#xff08;Gamma&#xff09;是一个重要的但很少被正确理解的特性。它定义了一个像素的数值和对应的实际亮度之间的关系。 人眼感知的亮度和相机“看到”的亮度区别 对于数码相机来说&#xff0c;当检测的光子数增加一倍时&#xff0c;sens…

伽马校正-

伽马校正 问题描述&#xff1a;读取图像&#xff0c;然后对图像进行伽玛校正。 伽马校正 这里是一篇写伽马校正比较好的文章&#xff0c;我觉得可以作为背景知识补充。 伽马校正用来对照相机等电子设备传感器的非线性光电转换特性进行校正。如果图像原样显示在显示器等上&…

图形 2.6 伽马校正

一、Gamma校正 1、颜色空间 图中可以看到&#xff0c;sRGB和Rec.709的色域虚线一样&#xff0c;三原色的位置是相同的&#xff0c;那么它们之间的区别就是&#xff1a;传递函数不同 2.传递函数 定义 知道了颜色的颜色值之后&#xff0c;想要在电子设备上显示&#xff0c;就…

伽马校正(Gamma Correction)与sRGB

文章目录 CRT显示器与人眼视觉非线性显示与渲染伽马校正sRGB 纹理正确的点光衰减补充参考资料 CRT显示器与人眼视觉 过去, 大多数监视器是阴极射线管显示器(CRT). 这些监视器有一个物理特性就是两倍的输入电压产生的不是两倍的亮度. 输入电压产生约为输入电压的 2.2 次幂的亮度…

图形学基础——伽马校正

百人计划学习视频连接&#xff1a;【技术美术百人计划】图形 2.6 伽马校正 颜色空间 具体内容在之前的文章有讲&#xff1a;色彩空间介绍 sRGB&#xff1a;微软在1996年发布的通用颜色标准DCI-P3&#xff1a;数字电影播放的颜色标准Rec-709、PAL&#xff1a;电视行业的颜色标…

伽马校正

注&#xff1a;本文为博主参考书籍和他人文章并加上自己的理解所编&#xff0c;作为学习笔记使用并将其分享出去供大家学习。若涉及到引用您的文章内容请评论区告知&#xff01;如有错误欢迎指正&#xff01; 一、伽马校正简介 射伽马校正是图像预处理阶段经常使用的一个非…

可执行文件的装载,进程和线程,运行时库的入口函数(第六章)

目录 第1步.创建一个独立的虚拟内存空间 第2步.读取可执行文件头&#xff0c;建立虚拟空间和可执行文件之间的映射关系 第3步.将cpu的指令寄存器设置成可执行文件的入口地址&#xff0c;启动运行。 程序开始执行&#xff0c;发生页错误。 随着程序的执行&#xff0c;不停…

疯狂python讲义学习笔记——前十章完结

#第一章&#xff1a;绪论 #单行注释多行注释""" 多行注释 """#dir列出指定类或模块的属性与方法&#xff0c;help查看某个函数或方法的帮助文档 print(dir(str)) print(help(str.title))#第二章&#xff1a;数据类型 a5 print(type(a))#<clas…

嵌入式代码学习心得记录

一、C语言学习心得记录 函数递归 编写顺序 终结条件输入下一级递归参数,调用下一级递归函数.当前递归函数的操作代码,在下一级递归函数执行完成后执行的操作代码. #include <stdio.h> #include <string.h>void revert(char *s, int len) {// 终结条件if(len <…

python 字节流分段_一文掌握CTF中Python全部考点

声明&#xff1a;Tide安全团队原创文章&#xff0c;转载请声明出处&#xff01;文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用&#xff0c;任何人不得将其用于非法用途以及盈利等目的&#xff0c;否则后果自行承担&#xff01; 前 言 一次偶然的机会&#xff0c…

Python课程学习笔记 下

笔记目录 Python 学习笔记 上面向对象和异常面向对象基本理论定义类根据类实例化对象属性相关方法相关类的补充属性补充方法相关补充描述器python对象的生命周期内存管理机制面向对象的三大特性面向对象应当遵循的原则 错误和异常错误和异常的概念常见的系统异常和系统异常类继…

从点击APP图标到首页展示的加载过程

转载链接在这里 iOS 系统架构 Mac系统是基于Unix内核的图形化操作系统&#xff0c;Mac OS 和 iOS 系统架构的对比分析发现&#xff0c;Mac OS和iOS的系统架构层次只有最上面一层不同&#xff0c;Mac是Cocoa框架&#xff0c;而iOS是Cocoa Touch框架&#xff0c;其余的架构层次都…

python os模块

10.3 os模块 os就是“operating system”的缩写&#xff0c;顾名思义&#xff0c;os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块&#xff0c;一方面可以方便地与操作系统进行交互&#xff0c;另一方面页可以极大增强代码的可移植性。如果该模块中…

Python:异常处理,模块和包,正则表达式

1&#xff0c;异常处理机制 Python的异常处理机制可以让程序具有极好的容错性&#xff0c;让程序更加健壮。当程序运行出现意外情况时&#xff0c;系统会自动生成一个Error对象来通知程序&#xff0c;从而实现将“业务实现代码”和“错误处理代码”分离&#xff0c;提供更好的可…

操作系统面试题总结

进程的常见状态&#xff1f;以及各种状态之间的转换条件? 创建状态&#xff1a;进程在创建时需要申请一个空白PCB&#xff0c;向其中填写控制和管理进程的信息&#xff0c;完成资源分配。如果创建工作无法完成&#xff0c;比如资源无法满足&#xff0c;就无法被调度运行&#…

Python--多线程与并行

一、线程和进程介绍 1.1、进程基本概念 进程&#xff08;Process&#xff09;&#xff0c;是计算机中已运行程序的实体&#xff0c;曾经是分时系统的基本运作单位。在面向进程设计的系统&#xff08;如早期的Unix、Linux2.4及更早的版本&#xff09;中&#xff0c;进程是程序…

【Python学习】--pythonf笔记

系列文章目录 文章目录 系列文章目录前言一、Python代码规范&#xff08;编码、代码格式&#xff09;1. 编码2. 代码格式3. import 语句4. 空格 二、Python代码注释&#xff08;块注释、行注释、文档注释&#xff09;1. 块注释2. 行注释3. 建议4. 文档注释 三、Python命名规范&…

进程和信号

进程和信号 一、进程初识 1、程序的开始和结束 开始&#xff1a;编译链接时的引导代码。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main。在程序链接时由链接器将编译器中事先准备好的引导代码给链接进去与我们的代码一起组成最终的可执行程序…

什么!学Python多进程的你还不知道multiprocessing模块?该充电了>_(Python编程 | 系统编程 | 并行系统工具 | multiprocessing模块)

文章目录 multiprocessing模块基本操作&#xff1a;进程和锁关于实现和用法的规则 *IPC*工具&#xff1a;管道、共享内存和队列管道共享内存和全局对象队列和子类 启动独立程序其他更多 multiprocessing模块 Python标准库中的multiprocessing模块允许脚本通过与threading模块非…