了解伽马(GAMMA、伽马值、光度、灰度系数)
gamma校正算法灰度值
gamma校正算法灰度值
Gamma校正是一种非线性操作,用于调整图像的灰度值,使其更符合人眼的视觉特性。
在数字图像处理中,Gamma校正通常用于改善图像的对比度和亮度,使得图像看起来更加自然和舒适。
Gamma校正的原理是基于人眼对亮度的感知是非线性的,即人眼对亮度的感知随着亮度的增加而加速增加,随着亮度的减小而减缓减小。
因此,通过将图像的灰度值进行非线性变换,可以更好地匹配人眼的感知特性,提高图像的可视效果。
在数学上,Gamma校正通常使用以下公式实现:
O=I^gamma
其中 O 是校正后的灰度值,I 是原始灰度值,gamma 是校正系数。
当gamma 大于 1 时,图像的对比度会增强,当 gamma 小于 1 时,图像的
对比度会降低。
在实现上,通常需要将输入的灰度值进行映射变换,以得到校正后的灰度值。
这个映射关系可以用一个曲线来表示,这个曲线就是Gamma校正曲线。
Gamma校正的方法有很多种,包括简单的幂函数、分段函数、多项式函数等。
不同的方法可以适用于不同的场景和需求,需要根据具体情况选择适合的方法。
显示器Gamma相关小结
显示器Gamma相关知识小结张开俊 2010-10-20与其他医疗设备使用的普通显示器不同,放射影像、超声诊断等设备使用的为专业的医疗显示屏(Medical Monitor)。
因为要直接根据医学图像(主要是灰度图)做诊断,所以医疗屏对显示的图像的灰阶、色温有较高的要求。
因此公司的超声产品上,无论是使用CRT显示器,还是LCD液晶屏,无论是外协加工的成品显示器,还是自己组装调试的显示器组件,对Gamma的调校需求和验证标准都极为严格,而相关的显示器供应商也将Gamma调校方法作为技术机密或核心竞争力。
Gamma在显示器的质量的重要性可见一斑,然而Gamma究竟为何物?Gamma的调校又有何神奇之处?通过相关的调研,这些谜题将一一解开。
1. 什么是Gamma?Gamma源于CRT的响应曲线,即反映显像管的图像亮度与输入电子枪的信号电压的非线性关系的一个参数。
对于CRT显示器而言,显像管电子枪发出的电子束及其生成的图像亮度并不是随显像管的输入电压线性变化,电子流与输入电压相比是按照指数曲线变化的,输入电压的指数要大于电子束的指数。
所以暗区的信号要比实际情况更暗,而亮区要比实际情况更高,即亮度响应为非线性的。
图1就是CRT的输入和输出非线性关系的表现。
由于这种非线性特性,将使被显示的图像色调发生偏移。
图2即反映出这种非线性导致的图像的失真效果。
图 1 CRT显示器的亮度响应曲线图图2 图像失真对比为衡量这种非线性,用书写表达式来确定输入输出之间的关系,就引入了Gamma这个概念,抽象简化的表达这样一个幂函数:按照惯例,“输入”和“输出”都缩放到0~1 之间。
其中,0 表示黑电平,1 表示颜色分量的最高电平。
对于特定的部件,人们可以度量它的输入与输出之间的函数关系,从而找出Gamma值。
一般将Gamma定义在0—10之间的一数值。
从另一个侧面可以简单理解Gamma是衡量中间灰度位置的一个值。
当Gamma的值大于1时,图像的高光部分灰度跨越大而暗调部分灰度跨越小;相反,当Gamma的值小于1时,图像的暗调部分灰度跨越变大而高光部分灰度跨越变小,图3即形象的反映了不同Gamma值对应的中间灰度位置,以及亮暗部分的分配比例,图中圆点即表示中间灰度(255灰阶中的128灰阶)的位置。
显示器Gamma相关小结
显示器Gamma相关知识小结张开俊 2010-10-20与其他医疗设备使用的普通显示器不同,放射影像、超声诊断等设备使用的为专业的医疗显示屏(Medical Monitor)。
因为要直接根据医学图像(主要是灰度图)做诊断,所以医疗屏对显示的图像的灰阶、色温有较高的要求。
因此公司的超声产品上,无论是使用CRT显示器,还是LCD液晶屏,无论是外协加工的成品显示器,还是自己组装调试的显示器组件,对Gamma的调校需求和验证标准都极为严格,而相关的显示器供应商也将Gamma调校方法作为技术机密或核心竞争力。
Gamma在显示器的质量的重要性可见一斑,然而Gamma究竟为何物?Gamma的调校又有何神奇之处?通过相关的调研,这些谜题将一一解开。
1. 什么是Gamma?Gamma源于CRT的响应曲线,即反映显像管的图像亮度与输入电子枪的信号电压的非线性关系的一个参数。
对于CRT显示器而言,显像管电子枪发出的电子束及其生成的图像亮度并不是随显像管的输入电压线性变化,电子流与输入电压相比是按照指数曲线变化的,输入电压的指数要大于电子束的指数。
所以暗区的信号要比实际情况更暗,而亮区要比实际情况更高,即亮度响应为非线性的。
图1就是CRT的输入和输出非线性关系的表现。
由于这种非线性特性,将使被显示的图像色调发生偏移。
图2即反映出这种非线性导致的图像的失真效果。
图 1 CRT显示器的亮度响应曲线图图2 图像失真对比为衡量这种非线性,用书写表达式来确定输入输出之间的关系,就引入了Gamma这个概念,抽象简化的表达这样一个幂函数:按照惯例,“输入”和“输出”都缩放到0~1 之间。
其中,0 表示黑电平,1 表示颜色分量的最高电平。
对于特定的部件,人们可以度量它的输入与输出之间的函数关系,从而找出Gamma值。
一般将Gamma定义在0—10之间的一数值。
从另一个侧面可以简单理解Gamma是衡量中间灰度位置的一个值。
当Gamma的值大于1时,图像的高光部分灰度跨越大而暗调部分灰度跨越小;相反,当Gamma的值小于1时,图像的暗调部分灰度跨越变大而高光部分灰度跨越变小,图3即形象的反映了不同Gamma值对应的中间灰度位置,以及亮暗部分的分配比例,图中圆点即表示中间灰度(255灰阶中的128灰阶)的位置。
理解Gamma
2.2. 检查显示系统的Gamma值
在PC上,好像还没有什么软件方法可以得到系统的Gamma值(4.1会说明这一点)。有人做了一些图片,可以粗略估计。其原理和 Adobe Gamma类似。
file:///E|/cultraview_sch,spec/detail/无忌论坛 - 理解 Gamma.htm(第 6/47 页)2008-5-4 10:49:51
file:///E|/cultraview_sch,spec/detail/无忌论坛 - 理解 Gamma.htm(第 2/47 页)2008-5-4 10:49:51
无忌论坛 - 理解 Gamma
这些都是怎么回事?
图 1-1 显卡(驱动程序)上的Gamma设置 现在很多显卡上都有Gamma设置(图中是一破烂集成显卡)。
1. 在哪见过、听说过Gamma? * 还用说,Adobe Gamma * 常听说MAC的默认Gamma是1.8,PC的是2.2 * 我的显卡驱动程序里有Gamma调节 * 我下载了一个软件,也可以调节显示器的Gamma * WinDVD播放器带Gamma校正功能 * ACDSEE的曝光调节里可以调Gamma * ACDSEE的选项中有Enable Gamma Correction * XV Viewer 能以参数-gamma 2.2 启动(x window也可以) * PNG文件里有Gamma校正 * Photoshop里当然也有 * ICC Profile也和Gamma有关? * 摄像头、数码相机、扫描仪?胶片?……中也有提到Gamma的 ……
file:///E|/cultraview_sch,spec/detail/无忌论坛 - 理解 Gamma.htm(第 5/47 页)2008-5-4 10:49:51
了解伽马(GAMMA、伽马值、光度、灰度系数)
了解伽马(GAMMA、伽马值、光度、灰度系数)了解伽马(GAMMA、伽马值、光度、灰度系数)来源:pconline ⽇期:2007-08-26 00:05⼀. 在哪见过、听说过Gamma?* 还⽤说,Adobe Gamma* 常听说MAC的默认Gamma是1.8,PC的是2.2* 我的显卡驱动程序⾥有Gamma调节* 我下载了⼀个软件,也可以调节显⽰器的Gamma* WinDVD播放器带Gamma校正功能* ACDSEE的曝光调节⾥可以调Gamma* ACDSEE的选项中有Enable Gamma Correction* XV Viewer 能以参数-gamma 2.2 启动(x window也可以)* PNG⽂件⾥有Gamma校正* Photoshop⾥当然也有* ICC Profile也和Gamma有关?* 摄像头、数码相机、扫描仪?胶⽚?……中也有提到Gamma的……这些都是怎么回事?图:显卡(驱动程序)上的Gamma设置图:ACDSEE中的曝光调节⼆. 什么是Gamma?2.1. 显⽰器Gamma曲线Gamma可能源于CRT(显⽰器/电视机)的响应曲线,即其亮度与输⼊电压的⾮线性关系。
图:⼀典型显⽰器的响应曲线,⾮常接近指数函数(说明:上图中输⼊值为数字化的,即通常的RGB值,但可以理解数/模转换是线性的,所以它和输⼊电压是等效的)归⼀化后,我们通常可以⽤⼀简单的函数来表⽰:output = input ^ gammagamma就是指数函数中的幂。
图:归⼀化的Gamma曲线注意上图曲线的⼀些特性:* 端点是不变的,即不管gamma值如何变化,0对应的输出始终是0,1的输出始终是1(这⼀特性会被⽤到)。
这可能是gamma⼜被叫作“灰度”系数的原因吧。
* gamma > 1时,曲线在gamma=1斜线的下⽅;反之则在上⽅。
另外说明⼀下,虽然是以显⽰器作为例⼦,但可扩展到⼀般的图像相关的输⼊/输出设备。
GAMMA(伽玛值)含义
1 什么是gamma?对于CRT显示器,输入电压信号将在屏幕上产生亮度输出,但是显示器的亮度与输入的电压信号不成正比,存在一种失真。
如果输入黑白图像信号,这种失真将使被显示图像的中间调偏暗,从而使图像整体比原始场景偏暗;如果输入的彩色图像信号,这种失真除了使显示图像偏暗以外,还会使显示图像的色调发生偏移。
gamma就是这种失真的度量参数。
对于CRT显示器,无论什么品牌,由于其物理原理的一致性,其gamma 值几乎是一个常量2.5。
(注意,gamma=1.0时不存在失真),由于存在gamma 失真,输入电压信号所代表的图像,在屏幕上显示时比原始图像暗。
2 gamma概念的演化2.1 第一次演化(系统gamma和显示器gamma)对于显示器来说,gamma值是常量,不可改变,所以校正过程就只能针对输入的图像电压信号。
这种校正就是将正常的图像电压信号向显示器失真的相反方向去调整。
既然失真使图像的中间调变暗,那么在图像电压信号输入到显示器之前,先将该电压信号的中间调调亮,然后再输入到显示器,这样就可以抵消显示器的失真。
由于显示器的gamma值是常量,所以这种校正的幅度也是相对固定的,这种校正幅度的度量参数也叫gamma,这是gamma概念的第一次演化。
为了区别这两种不同的概念,此处的gamma又称为系统gamma(因为对图像电压信号的校正过程,发生在电脑系统中),显示器固有的gamma又叫做显示器gamma。
2.2 第二次演化显示器gamma表示一种失真,系统gamma表示一种校正,这两者的共同之处都是表示对原始信号的一种变换,所以gamma又分为两层含义,一表示对原始信号的一种变换,二表示这种变换的度量参数。
2.3第三次演化(文件gamma)从宏观上讲,被相机拍摄的物体的亮度是连续变化的,如果将亮度连续变化的被摄物体的图像转换成数字文件(计算机文件)时,无论用数字相机还是扫描仪,都要面临用离散的数值去近似表示连续的物理量(物体亮度)。
Gamma校正
所以RGB中的灰度值,为了考虑到较小的存储范围(0~255)和较平衡的亮暗部比例,所以需要进行Gamma校正, 而不是直接对应功率值,因此RGB值RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理光功率后才能 进行下一步计算。这一点在下面的灰度计算公式中就有所体现。
详细介绍
RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2,而这个换 算过程,称为Gamma校正。
为什么显示器要Gamma校正呢?因为人眼对亮度的感知和物理功率不成正比,而是幂函数的关系,这个函数 的指数通常为2.2,称为Gamma值。
打个比方,功率为50%的灰色,人眼实际感知亮度为
应用
Gamma校正的应用之一,就是明度和灰度计算公式。 RGB明度计算公式: L取值范围为0~1 RGB灰度计算公式: 注意这里的2.2次方和2.2次方根,RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理光功率。因 为RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2,而这个换算 过程,称为Gamma校正。
通过渲染器和文件输入到软件,确定要应用于文件输出的 gamma值,例如纹理贴图。这个控件也位于“首选 项”对话框(文件 Gamma)中的 Gamma面板中。
gamma校正中最重要的一条规则就是只做一次校正。如果做两次的话,图像质量会过亮并损失颜色分辨率。
对于输出文件的 gamma,视频设备(例如录像机)拥有自己的硬件 gamma校正电路。因此,需要决定由软件 进行输出 gamma校正还是让输出设备进行处理。
原理
校正原理
校正原理
液晶电视机显示器由于液晶屏红绿蓝三色电光特性不一致,表现为各个灰阶的颜色差异较大,需要校正各个 灰阶的颜色。尤其暗场的灰阶误差非常明显,无法通过白平衡调节来清除各灰阶的颜色误差。只有各灰阶的颜色 一致后,方能通过亮暗场的白平衡调节,将色温调节到要求的色温。另一方面液晶电视机显示器的亮度比较高, 为了增加液晶电视机显示器的透亮度,更好地表现颜色,需要对液晶电视机显示器的亮度进行非线性校正。这些, 都需要通过对液晶电视机显示器进行GAMMA校正来完成。校正GAMMA曲线后,可以实现如下目的:暗场灰阶的颜色 明显改善,各灰阶的颜色误差明显减少,暗场颜色细节分明,图像亮度颜色一致,透亮度好,对比明显。同一尺 寸不同屏的电视对颜色表现的明显一致
伽马校正高低-概述说明以及解释
伽马校正高低-概述说明以及解释1.引言1.1 概述概述伽马校正是一种图像处理技术,用于调整图像的亮度和对比度。
它基于伽马曲线的特性,通过调整图像中各个像素的强度值,使得图像显示更加准确和平衡。
伽马校正的目的是解决不同光照条件下图像的亮度失真问题。
在现实生活中,我们会经常遇到光照不均匀的情况,比如室内外光线的差异、阴影等。
这些光照条件的变化会导致图像显示的亮度和对比度出现问题,使得图像细节难以辨认,影响了图像的质量和观赏性。
伽马校正通过调整图像的亮度和对比度来解决这些问题。
它通过改变图像中每个像素的强度值,使得整幅图像的亮度和对比度达到更理想的状态。
具体来说,伽马校正会对图像的灰度级进行非线性变换,使得低灰度级和高灰度级的细节更加突出,图像的整体亮度和对比度更加均衡。
伽马校正在很多领域都有广泛的应用。
在医学影像领域,伽马校正可以帮助医生更清晰地观察患者的X光、MRI等影像,提高诊断准确性和效果。
在电视和电影制作领域,伽马校正可以改善视频的观看体验,使图像更加鲜明、清晰。
此外,伽马校正还可以应用于计算机视觉、图像处理和游戏开发等领域,为各种应用提供更好的图像呈现效果。
随着科技的不断进步,伽马校正技术也在不断发展和完善。
未来,我们可以期待更多的创新和应用,从而使伽马校正在各个领域发挥更大的作用。
通过不断优化算法和改进硬件设备,伽马校正将能够为我们提供更加优质的图像呈现体验,进一步提升我们生活和工作的质量。
1.2文章结构文章结构部分文章2.0 绪论:近年来,随着数字图像和视频的快速发展,人们对图像和视频质量的需求也越来越高。
然而,由于设备、传输和显示的限制,图像和视频在采集、传输和显示过程中往往会出现亮度不足或亮度过高的问题。
为了解决这一问题,人们提出了各种各样的图像和视频处理算法,其中伽马校正技术是一种常用的方法。
2.1 伽马校正的概念:伽马校正是一种非线性的图像和视频亮度调整方法,其目的是通过调整图像和视频的亮度曲线,来改变其整体亮度分布和对比度。
理解伽马(Gamma)
理解伽马(Gamma)我们在《理解摄像机》里曾经提到过伽马(Gamma),说伽马就是成像物件形成画面的“反差系数”。
如果伽马曲线比较陡,则输出的画面反差比较高,如果伽 马曲线比较缓,则输出的画面反差比较低。
这个概念说起来好像并不难懂,但在实际的摄像机操作中,调整伽马对画面的影响似乎远不止“调整反差”那么简单,难 道说伽马还有别的什么意义吗?在一些高级的摄像机里,不但有Master G amma(总伽马)的调整,还有R/G/B G amma(通道伽马),甚至BLK Gamma(黑伽马)的调整,为什么一个跟反差有关的参数弄得这么复杂呢?看来似乎仅仅知道“伽马影响反差”恐怕不容易驾驭这些马仔。
好,今天我们就讲讲 伽马在数字成像中的作用,以及各种不同的马仔都是怎么回事。
要说马得先说骑马的人。
人类对外界的刺激会产生反应,比如我们能感知物体重量、声音大小、味道咸淡、气温高低、光线强弱。
而人类对这些外界刺激的变化所做 出的反应是“非线性”的,换种说法就是,人类“感知刺激变化的比例”与“实际的刺激变化的比例”并不一致。
举个例子,一杯水了放了一勺糖,我们会觉得甜, 但放两勺糖,我们并不会觉得有“2倍甜”,顶多会觉得又甜了一点点,这就是非线性反应,但如果我们用“甜度计”去测量,那么甜度是原先的2倍,实际的物理 变化是线性的,而人类是非线性的,你要加很多倍的糖,人类才能觉得“2倍甜”,这就是人类的德性。
再举个例子,比如声音,我们把音量提高2倍分贝,用响度计测量,声音的强度比原来高2倍,但人耳却听不出来强了2倍,因为我们人耳也是“非线性”,非要强 N多倍,才能感受到强了2倍。
如果你玩音响,音响系统里就有个“等响度”的概念,就是把音量调节按人耳的非线性增量来设置,等响度设备调节2倍音量,我们 听起来的确大了2倍,其实实际音量已经大N多倍了。
好了,人眼,人眼也是非线性的“设备”,你提高2倍的亮度,人眼根本不领情,觉得只亮了一点点,你要提高到8倍亮度,人眼就觉得“这应该比原来亮2倍了” (如果电灯是活的,它非吐血不可)。
伽马值
教程用到了网上一个常见的欧式古建模型,我觉得这样可能比较好说明问题。
只用自然光照明是表现这个场景的前提,不打算借助人造光或额外的补光。
希望可以只用少量的参数调试来达到比较真实自然的效果。
先来看只打开天光(强度2),分别用线性和指数的渲染效果。
除了各自曝光方式特点鲜明之外,可以看到两张图都有一个共同缺点:走廊太黑暗,看不清内容。
从模拟写实的角度上说这并不合理。
虽然走廊不直接受光但仍有一定采光面,会有部分光线能够散射进来,所以不应出现几乎死黑的效果。
人眼也很少能看到死黑。
人往昏暗背光的地方看时,瞳孔会自动扩大,使眼睛能接收到更多光线,从而也可以看清暗处的东西。
所以说图中走廊过黑的现象,现实中不会存在。
至于为什么渲染会出现这样的现象,客观上有渲染器原理局限的原因,也有软硬件处理图像显示方式上的原因。
但这里不说那些晦涩的东西,只讲怎么解决它。
一个好的解决办法就是使用LWF(后面会解释什么是LWF)。
LWF的好处在于可以平衡画面的明暗,避免出现暗部死黑和亮部曝光的问题,图面效果更接近人眼的视觉,也就更符合写实照片级的要求。
下面就来看看保持原参数不变,仅使用了LWF后的渲染效果。
可以看到整个场景的照明已经变得均匀,贴图细节也看得更清楚。
最大的改善在于走廊,已经不再死黑而是可以看见里面墙壁的纹理了。
在满足场景基本照明的前提下也没有出现曝光和纯线性下的色彩过重(色溢)的现象。
所以个人认为,使用LWF在表现需要符合真实光影效果的图纸时,是很有帮助的。
在渲染模型结构采光不好的场景时意义更加明显。
接下来就开始说明实现LWF的设置方法,和配合VR阳光系统与物理相机表现该场景在晴天效果下的制作流程。
教程开头即说到希望用少量的参数测试来达到想要的效果,后面的操作也将保持这个初衷。
打开max,点击菜单栏的自定义——首选项——Gamma和LUT选项卡,如图设置。
这样就完成了LWF的第一步设置。
打开欧式古建场景模型。
这个模型在教程的最后会上传。
gamma材质参数
Gamma材质参数1. 什么是Gamma材质参数?Gamma(伽马)是计算机图形学中常用的一个概念,它用于描述显示器的亮度响应曲线。
在计算机图形学中,我们通常使用线性空间来进行光照计算和颜色处理,而显示器则使用非线性空间来显示颜色。
为了在线性空间和非线性空间之间进行正确的转换,我们需要使用Gamma校正。
在渲染引擎中,材质参数是用来描述物体外观的属性。
Gamma材质参数就是其中之一,它用于控制物体表面对光照的反射特性。
通过调整Gamma材质参数,我们可以改变物体的亮度响应曲线,从而影响其最终的呈现效果。
2. Gamma校正原理为了更好地理解Gamma材质参数的作用,首先需要了解Gamma校正的原理。
在显示器上显示颜色时,我们通常会将输入信号经过一次伽马校正再输出到显示器上。
这是因为人眼对亮度的感知并不是线性的,而是呈现出一种非线性响应。
因此,在将颜色值从计算机中输出到显示器上时,需要对其进行Gamma校正,以保证显示效果的准确性。
Gamma校正的公式如下:输出颜色 = 输入颜色 ^ (1 / Gamma)其中,输入颜色是已知的线性空间中的颜色值,输出颜色是经过Gamma校正后得到的非线性空间中的颜色值。
通过这种方式,我们可以将线性空间中的颜色值转换为显示器上正确的显示效果。
3. Gamma材质参数的作用在渲染引擎中,Gamma材质参数用于调整物体表面对光照的反射特性。
通过改变Gamma材质参数的数值,我们可以改变物体在渲染过程中对光照的响应方式。
具体来说,较低的Gamma值会使得物体表面对光照更加敏感,从而产生较亮、高对比度的效果。
这种效果适合用于室外场景或者明亮环境中,可以让物体看起来更加明亮、生动。
相反,较高的Gamma值会使得物体表面对光照不太敏感,从而产生较暗、低对比度的效果。
这种效果适合用于室内场景或者昏暗环境中,可以让物体看起来更加沉稳、柔和。
通过调整Gamma材质参数,我们可以根据不同场景的需求来改变物体的亮度响应曲线,从而达到更好的渲染效果。
Gamma详解
Gamma曲线是一种特殊的色调曲线,当Gamma值等于1的时候,曲线为与坐标轴成45°的直线,这个时候表示输入和输出密度相同。
高于1的Gamma值将会造成输出亮化,低于1的Gamma值将会造成输出暗化。
总之,我们的要求是输入和输出比率尽可能地接近于1。
在显示器、扫描仪、打印机等输入、输出设备中这是一个相当常见并且比较重要的概念。
在计算机系统中,由于显卡或者显示器的原因会出现实际输出的图像在亮度上有偏差,而Gamma曲线矫正就是通过一定的方法来矫正图像的这种偏差的方法。
一般情况下,当用于Gamma矫正的值大于1时,图像的高光部分被压缩而暗调部分被扩展,当Gamma矫正的值小于1时,图像的高光部分被扩展而暗调部分被压缩,Gamma矫正一般用于平滑的扩展暗调的细节。
图1 CRT显示器的亮度响应曲线图图1显示的是一般CRT显示器的亮度响应曲线,可以看到其输入电压提高一倍,亮度输出并不是提高一倍,而是接近于两倍,显然这样输出的图像同原来的图像相比就发生了输出亮化的现象,也就是说未经过Gamma矫正的CRT显示器其Gamma值是小于1的。
没有经过Gamma矫正的设备会影响最终输出图像的颜色亮度,比如一种颜色由红色和绿色组成,红色的亮度为50%,绿色的亮度为25%,如果一个未经过Gamma矫正的CRT显示器的Gamma值是2.5,那么输出结果的亮度将分别为18%和3%,其亮度大大的降低了。
图2 按图进行曲线补偿为了补偿这方面的不足,我们需要使用反效果补偿曲线来让显示器尽可能地输出同输入图像相同的图像,所以这个时候显示器的输入信号应该按照图2所示的曲线进行补偿,这样才能在显示器上得到比较理想的输出结果。
图3 理想状态下的曲线一般的反效果可以直接被赋予存储在帧缓存中的图像,使之Gamma曲线呈非线性,也可以通过RAMDAC进行这种反效果补偿(或者说是Gamma曲线矫正)。
这样我们就可以在显示器上看到同我们输入的图像接近的图像了(如图3)。
色彩管理中的Gamma值的理解
色彩管理中的Gamma值的理解文章目录•广义的Gamma值•为什么要将输出和输入做Gamma运算?•显示器的Gamma值•什么是Gamma值为1.0线性响应?•显示器的Gamma值标准是多少?•打印机、印刷机Gamma值?•印刷机Gamma与显示器的Gamma的比较广义的Gamma值Gamma值的广义定义就是输入值和输出值的Gamma幂指数关系,用来补偿人眼对自然亮度的非线性感知。
输入与输出关系如下图所示:输入和输出的关系可表达为:输出 = 输入gammaGamma=1,斜45°直线,不校正,输出=输入;Gamma大于1,曲线下压,输出值小于输入值;Gamma小于1,曲线上拱,输出值大于输入值。
为什么要将输出和输入做Gamma运算?上面提到,Gamma为了解决人眼对自然亮度非线性感知的问题,其二是因为记录存储的有限性。
举个栗子:一间黑屋子中,点亮了一只灯泡A,人眼会感觉照亮整间屋子,持续点亮第2个、第2个……灯泡后,人眼会感觉屋子逐渐变得明亮,此时再点亮第N+1个灯泡,其实人眼没有什么感觉甚至微乎其微,为什么?•亮度对人眼的刺激是非线性的,第1个和最后一个灯泡点亮对人眼的刺激感觉是不同的;•人眼感觉黑->白范围“有限”,灯泡可以无限,但感觉会趋于一个有限制值;分析:此时输入是灯泡的强度,输出是人眼的感觉,大自然中,感觉的差别阈限随原来刺激量的变化而变化,这是著名的韦伯定律,下图显示了自然界的线性增长的亮度和人心里感觉的灰介关系图:当物理亮度达到白色的20%左右的时候,人的心目中已经感受到中灰色(即0.5处)的概念。
而剩下的一半高光区的灰阶,需要用白色80%的物理能量才能照亮成白色。
根据输入和输出的关系,可确定此时的Gamma大约在1.8~2.5,而现在大多数用2.2。
所以,GAMMA值的应用非常多,如图像的拍摄中的相机的GAMMA、图像显示中的显示器的GAMMA、图像输出中的打印机、印刷机等GAMMA等,不同设备的GAMMA描述的都是此设备的信号值对应的亮暗关系,而且,这些关系都是非线性的。
gamma亮度和灰阶的关系
gamma亮度和灰阶的关系
Gamma亮度和灰阶是数字图像处理中常用的两个概念,它们之间存在着密切的关系。
Gamma亮度是指图像中的亮度水平,通常用伽马值来表示。
伽马值是一个介于0到1之间的数值,它决定了图像的亮度和对比度。
当伽马值为1时,图像的亮度与输入信号成正比;当伽马值小于1时,图像的亮度会变得更暗;当伽马值大于1时,图像的亮度会变得更亮。
灰阶是指图像中每个像素的亮度级别,通常用8位二进制数来表示,即从0到255的整数。
在数字图像处理中,灰阶通常用来描述图像的明暗程度和细节信息。
Gamma亮度和灰阶之间的关系可以通过以下公式来表示:Y = X^γ,其中Y 表示输出亮度,X表示输入亮度,γ表示伽马值。
这个公式表明了输入亮度和输出亮度之间的关系,即输出亮度是输入亮度的γ次方。
因此,通过调整伽马值的大小,可以改变图像的亮度和对比度,从而影响灰阶的表现效果。
Gamma亮度和灰阶是数字图像处理中非常重要的概念,它们之间存在着密切的关系。
通过对伽马值的调整,可以实现对图像亮度和对比度的精确控制,从而获得更好的图像效果。
gamma原理 灰度值
Gamma调节是一种在图像处理领域中非常常见的技术,它可以用于改变图像的亮度和对比度,从而使图像在视觉上更具有视觉冲击力和清晰度。
此项技术的基本原理是基于人类视觉系统的生理特性,即对亮度的感知不是线性的。
通过对图像的像素值进行非线性变换,使得图像的亮度和对比度得到更好的调整,从而使得图像在观看者的视觉中更加鲜明和清晰,同时可以增强图像的美感。
因此,在处理图像时,可以通过调整图像的伽马值来改变图像的亮度和对比度,使其更好地适应特定的观看环境和应用场景,从而提高图像的视觉效果。
灰度值是指图像中每个像素点的亮度值。
在RGB色彩空间中,每个像素点的颜色由红色、绿色和蓝色三个通道的数值共同决定,每个通道的数值范围为0到255。
当三个通道的数值都为0时,像素点的亮度为0,即为黑色;当三个通道的数值都为255时,像素点的亮度为255,即为白色;当三个通道的数值在0到255之间时,像素点的亮度介于黑色和白色之间,形成不同的灰度级别。
灰度值的计算方法有多种,常见的有以下几种:1. 平均值法:将每个通道的数值求平均值,得到的结果即为灰度值。
例如,对于一个RGB图像,其灰度值计算公式为:灰度值 = (R + G + B) / 3其中,R、G、B分别代表红色、绿色和蓝色通道的数值。
2. 最大值法:将每个通道的数值中最大的值作为灰度值。
例如,对于一个RGB图像,其灰度值计算公式为:灰度值 = max(R, G, B)3. 最小值法:将每个通道的数值中最小的值作为灰度值。
例如,对于一个RGB图像,其灰度值计算公式为:灰度值 = min(R, G, B)4. 对比度法:将每个通道的数值与255的差值的绝对值作为灰度值。
例如,对于一个RGB图像,其灰度值计算公式为:灰度值 = abs(R - 255) + abs(G - 255) + abs(B - 255)以上几种方法中,平均值法和最大值法计算出来的灰度值最接近真实情况,最小值法和对比度法计算出来的灰度值可能会存在偏差。
GAMMA(伽玛值)含义
GAMMA(伽玛值)含义1 什么是gamma?对于CRT显示器,输入电压信号将在屏幕上产生亮度输出,但是显示器的亮度与输入的电压信号不成正比,存在一种失真。
如果输入黑白图像信号,这种失真将使被显示图像的中间调偏暗,从而使图像整体比原始场景偏暗;如果输入的彩色图像信号,这种失真除了使显示图像偏暗以外,还会使显示图像的色调发生偏移。
gamma就是这种失真的度量参数。
对于CRT显示器,无论什么品牌,由于其物理原理的一致性,其gamma 值几乎是一个常量2.5。
(注意,gamma=1.0时不存在失真),由于存在gamma 失真,输入电压信号所代表的图像,在屏幕上显示时比原始图像暗。
2 gamma概念的演化2.1 第一次演化(系统gamma和显示器gamma)对于显示器来说,gamma值是常量,不可改变,所以校正过程就只能针对输入的图像电压信号。
这种校正就是将正常的图像电压信号向显示器失真的相反方向去调整。
既然失真使图像的中间调变暗,那么在图像电压信号输入到显示器之前,先将该电压信号的中间调调亮,然后再输入到显示器,这样就可以抵消显示器的失真。
由于显示器的gamma值是常量,所以这种校正的幅度也是相对固定的,这种校正幅度的度量参数也叫gamma,这是gamma概念的第一次演化。
为了区别这两种不同的概念,此处的gamma又称为系统gamma(因为对图像电压信号的校正过程,发生在电脑系统中),显示器固有的gamma又叫做显示器gamma。
2.2 第二次演化显示器gamma表示一种失真,系统gamma表示一种校正,这两者的共同之处都是表示对原始信号的一种变换,所以gamma又分为两层含义,一表示对原始信号的一种变换,二表示这种变换的度量参数。
2.3第三次演化(文件gamma)从宏观上讲,被相机拍摄的物体的亮度是连续变化的,如果将亮度连续变化的被摄物体的图像转换成数字文件(计算机文件)时,无论用数字相机还是扫描仪,都要面临用离散的数值去近似表示连续的物理量(物体亮度)。
灰度变换之伽马变换
灰度变换之伽马变换1.概述伽玛变换⼜名指数变换、幂次变换或幂律变换,是另⼀种常⽤的⾮线性变换伽马变换主要⽤于图像的校正,将灰度过⾼或者灰度过低的图⽚进⾏修正,增强对⽐度。
变换公式就是对原图像上每⼀个像素值做乘积运算:s=c⋅rγr∈[0,1]其中 c 和γ为正常数,有时考虑到偏移量,也将表达式写为:s=c⋅(r+ϵ)γr∈[0,1]与对数变换不同,伽玛变换可以根据γ的不同取值选择性地增强低灰度区域的对⽐度或是⾼灰度区域的对⽐度。
γ是图像灰度校正中⾮常重要的⼀个参数,其取值决定了输⼊图像和输出图像之间的灰度映射⽅式,即决定了是增强低灰度( 阴影区域)还是增强⾼灰度(⾼亮区域)。
其中:γ > 1 时,图像的⾼灰度区城对⽐度得到增强γ < 1 时,图像的低灰度区城对⽐度得到增强γ = 1 时,图像是线性变换,对⽐度保持不变针对于数字图像处理,我们可以将公式写为:output=(input+ϵ)γ由于幂运算值域变化范围可能太⼤,对于当前主要的8 bit显⽰器,我们采⽤归⼀化⼿段:output=255×(input+ϵ255)γ2. 补偿系数的作⽤导⼊库:In [1]:from PIL import Imageimport numpy as npimport matplotlib.pyplot as plt定义伽马变换函数:In [2]:def gamma_trans(input, gamma=2, eps=0 ):return 255. * (((input + eps)/255.) ** gamma)测试补偿系数为0时的效果:In [3]:input_arr = np.array( [ [0, 50, 100, 150],[0, 50, 100, 150],[0, 50, 100, 150],[0, 50, 100, 150]] )fig = plt.figure()ax0 = fig.add_subplot(221)ax0.set_title("input")ax0.imshow(input_arr, cmap='gray',vmin=0,vmax=255)gamma = 0.25output = gamma_trans(input_arr, gamma=gamma, eps=0)ax1 = fig.add_subplot(222)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)gamma = 0.75output = gamma_trans(input_arr, gamma=gamma, eps=0)ax1 = fig.add_subplot(223)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)gamma = 1.5output = gamma_trans(input_arr, gamma=gamma, eps=0)ax1 = fig.add_subplot(224)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)print(output)plt.show()[[ 0. 22.14037214 62.62242911 115.04474833][ 0. 22.14037214 62.62242911 115.04474833][ 0. 22.14037214 62.62242911 115.04474833][ 0. 22.14037214 62.62242911 115.04474833]]由图可以看到,如果补偿系数ϵ=0,则灰度等于0的区域将不会产⽣任何变化,我们添加⼀个补偿系数ϵ=0.5:In [4]:input_arr = np.array( [ [0, 50, 100, 150],[0, 50, 100, 150],[0, 50, 100, 150],[0, 50, 100, 150]] )fig = plt.figure()ax0 = fig.add_subplot(221)ax0.set_title("input")ax0.imshow(input_arr, cmap='gray',vmin=0,vmax=255)gamma = 0.25output = gamma_trans(input_arr, gamma=gamma, eps=0.5)ax1 = fig.add_subplot(222)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)gamma = 0.75output = gamma_trans(input_arr, gamma=gamma, eps=0.5)ax1 = fig.add_subplot(223)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)gamma = 1.5output = gamma_trans(input_arr, gamma=gamma, eps=0.5)ax1 = fig.add_subplot(224)ax1.set_title("output, gamma = " + str(gamma))ax1.imshow(output, cmap='gray', vmin=0, vmax=255)print(output)plt.show()[[2.21403721e-02 2.24733066e+01 6.30926839e+01 1.15620451e+02][2.21403721e-02 2.24733066e+01 6.30926839e+01 1.15620451e+02][2.21403721e-02 2.24733066e+01 6.30926839e+01 1.15620451e+02][2.21403721e-02 2.24733066e+01 6.30926839e+01 1.15620451e+02]]可以看到整体的对⽐度都有变化,灰度值为0的问题可以避免3. 伽马变换矫正显⽰失真⽼式电视机CRT会有显⽰失真的问题,不同的电视有不同的失真指数我们假设某⽼式电视失真指数γ=0.5,我们使⽤伽马变换进⾏矫正,只需取矫正指数γ′=1γ原图像:In [5]:gray_img = np.asarray(Image.open('./img/intensity_ramp.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot()ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)plt.show()失真图像和伽马矫正:In [6]:gray_img = np.asarray(Image.open('./img/intensity_ramp.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot(131)ax1 = fig.add_subplot(132)ax2 = fig.add_subplot(133)gamma=0.5ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)ax1.set_title("distortion")distortion = gamma_trans(gray_img, gamma=gamma, eps=0)ax1.imshow(distortion, cmap='gray',vmin=0,vmax=255)ax2.set_title("correct")correct = gamma_trans(distortion, gamma=1/gamma, eps=0)ax2.imshow(correct, cmap='gray',vmin=0,vmax=255)plt.show()此处看起来是脱裤⼦放屁多此⼀举,但是实际中失真指数是不知道的,需要去得到矫正指数4. 伽马变换拉伸对⽐度对于暗⾊照⽚,我们可以进⾏伽马系数⼩于⼀的伽马变换从⽽提⾼低灰度值的对⽐度原图像:In [7]:gray_img = np.asarray(Image.open('./img/fractured_spine.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot()ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)plt.show()伽马变换:In [8]:gray_img = np.asarray(Image.open('./img/fractured_spine.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot(121)ax1 = fig.add_subplot(122)gamma=0.4ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)ax1.set_title("correct")correct = gamma_trans(gray_img, gamma=gamma, eps=0)ax1.imshow(correct, cmap='gray',vmin=0,vmax=255)plt.show()注意此处的伽马系数0.4是⼀种探索得出的数字,不⼀定是最佳值,下⾯的2.0同理对于亮⾊照⽚,我们可以进⾏伽马系数⼤于⼀的伽马变换从⽽提⾼低灰度值的对⽐度原图像:In [9]:gray_img = np.asarray(Image.open('./img/washed_out.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot()ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)plt.show()伽马变换:In [10]:gray_img = np.asarray(Image.open('./img/washed_out.tif').convert('L'))fig = plt.figure()ax0 = fig.add_subplot(121)ax1 = fig.add_subplot(122)gamma = 2.0ax0.set_title("origin")ax0.imshow(gray_img, cmap='gray',vmin=0,vmax=255)ax1.set_title("correct")correct = gamma_trans(gray_img, gamma=gamma, eps=0)ax1.imshow(correct, cmap='gray',vmin=0,vmax=255)plt.show()可以看到伽马变换带来的图像增强效果还是显著的5. 参考资料[1][2][3]Processing math: 100%。
摄影后期使用亮度蒙版修图,别忘了一个重要参数Gamma设置
摄影后期使用亮度蒙版修图,别忘了一个重要参数Gamma设置在摄影后期修图,特别是风光摄影后期,亮度蒙版是使用较多、功能十分强大的一个工具,它可以依据图像中不同的光线明暗层次选择你想要的选区,从而对图像进行局部处理,目前的亮度蒙版工具还扩展到依据图像的色彩颜色、色彩饱和度建立选区。
在实际修图过程中,除了自己手动创建亮度蒙版外,还有不少专门的亮度蒙版工具可以使用,能够大大提高效率,常见的有半岛雪人StarsT ail、T ony Kuyper的TKActions、杰米Raya pro Suite等。
既然是亮度蒙版,自然和图像的明暗层次密切相关,所以使用亮度蒙版得到的结果不仅与使用的工具有关,而且还与photoshop中的一个设置参数Gamma相关,这一点却常常被人们忽略了。
不同的Gamma参数直接影响到亮度蒙版结果的准确性,下面我们先通过一个具体的例子来看看。
一、Gamma伽马参数与亮度蒙版为了便于观察结果,我们在PS中新建一个1000*600像素(其它尺寸也可以)的空白图像,然后从左至右拉一个从纯黑到纯白的水平渐变,并打开PS的标尺显示便于观察,如图一。
图一:新建一个包含黑白渐变的图像1. 现在我们在新建的渐变图像中创建一个“亮调1”蒙版,方法是:在PS的通道面板中,按住Ctrl键的同时用鼠标左键单击RGB通道(或直接用Ctrl+Alt+2键盘快捷键),这样就得到了一个包含“亮调1”范围的选区,如图二。
从图中的蚂蚁线能够清楚地看出,该选区包含了图像的亮部,蚂蚁线左侧竖线在图像的中间(50像素)位置,选区正好占到全图的50%,我们可以把选区保存到通道中或直接作为蒙版使用。
图二:亮调1选区范围在PS的“颜色设置”对话框(通过菜单“编辑/颜色设置”或Shift+Ctrl+K打开)中,有一个“工作空间/灰色”设置项,就是用来设置Gamma参数的。
图二是该项设置值为“Gray Gamma 2.2”得到的结果。
显示器的伽马是什么?显示器伽马值多少合适?
显示器的伽马是什么?显示器伽马值多少合适?显示器伽马值多少合适?大家平时在调整显示器亮度色彩的时候有没有发现“伽马”这个参数,在一些显示器评测的文章里也会经常看到伽马值的测试图,今天小编就带大家一起来认识一下显示器伽马这个参数的意义。
一、显示器的伽马是什么?有什么作用?首先要说的是,伽玛值只是一个输出结果,表示图象输出值与输入值关系的斜线。
(有时也用于描述屏幕的反差)伽玛值指印刷技术或图象处理上,输入值和显示器输出时的亮度之间的关系,其影响原稿上高光到暗调之间色调的分布。
没有彩色管理,用户可调整显示器的伽玛值,以模拟在比较显示器上与原稿上的图像的反差时的观视条件。
在使用彩色匹配软件时,系统特地指定了显示器的伽玛值。
伽玛值影响图形中间值的色调或中间层次的灰度。
通过调整伽玛值可以改变图像中间色调灰阶的亮度值,以增加图像的中间层次,而不会对暗部和亮部的层次有太大的影响。
输入一个比一大的数,将扩大中间色调的范围,这样做能使中间色调占很大比例的图像产生较小的对比度和较多的细节。
伽玛值是指处理位图的一种特殊效果的调整,检查照片的亮度也十分重要,通过与原照片比较,看照片是否太暗或太亮,太暗或太亮都无法得到理想的照片。
将太暗的照片变亮,调整伽玛值无疑是简便的方法,但这样做会使照片失去信息。
二、显示器伽马值多少合适?一般来说,伽玛值没有越高越好或者越低越好之分,主要是输出调节到适当的需要值而已,具体什么为合适,那就要根据实际图像的反馈结果来定了,下边我们以一张图片调整伽马值来举例。
↑↑↑ 伽玛值-低↑↑↑ 伽玛值-正常↑↑↑ 伽玛值-高以上就是小编为大家介绍的“显示器的伽马是什么?显示器伽马值多少合适?”全部内容,如果你对这篇文章感兴趣的话可以收藏转发,同时也欢迎网友积极在本站发文投稿。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
了解伽马(GAMMA、伽马值、光度、灰度系数)来源:pconline 日期:2007-08-26 00:05一. 在哪见过、听说过Gamma? * 还用说,Adobe Gamma * 常听说MAC的默认Gamma是1.8,PC的是2.2 * 我的显卡驱动程序里有Gamma调节 * 我下载了一个软件,也可以调节显示器的Gamma * WinDVD播放器带Gamma校正功能 * ACDSEE的曝光调节里可以调Gamma * ACDSEE的选项中有Enable Gamma Correction * XV Viewer 能以参数-gamma 2.2 启动(x window也可以) * PNG文件里有Gamma校正 * Photoshop里当然也有 * ICC Profile也和Gamma有关? * 摄像头、数码相机、扫描仪?胶片?……中也有提到Gamma的 …… 这些都是怎么回事?图:显卡(驱动程序)上的Gamma设置图:ACDSEE中的曝光调节二. 什么是Gamma? 2.1. 显示器Gamma曲线 Gamma可能源于CRT(显示器/电视机)的响应曲线,即其亮度与输入电压的非线性关系。
图:一典型显示器的响应曲线,非常接近指数函数(说明:上图中输入值为数字化的,即通常的RGB值,但可以理解数/模转换是线性的,所以它和输入电压是等效的) 归一化后,我们通常可以用一简单的函数来表示: output = input ^ gamma gamma就是指数函数中的幂。
图:归一化的Gamma曲线 注意上图曲线的一些特性: * 端点是不变的,即不管gamma值如何变化,0对应的输出始终是0,1的输出始终是1(这一特性会被用到)。
这可能是gamma又被叫作“灰度”系数的原因吧。
* gamma > 1时,曲线在gamma=1斜线的下方;反之则在上方。
另外说明一下,虽然是以显示器作为例子,但可扩展到一般的图像相关的输入/输出设备。
Gamma曲线应该是普遍存在的,即使它不是严格的指数关系,可能还是会这么通称。
至少我知道的数码机机/摄像头里的sensor也存在gamma曲线及gamma校正。
2.2. 检查显示系统的Gamma值 在PC上,好像还没有什么软件方法可以得到系统的Gamma值(4.1会说明这一点)。
有人做了一些图片,可以粗略估计。
其原理和Adobe Gamma类似。
图:Gamma对照图 使用方法:与Adobe Gamma类似,即眯着眼,或站远点,或近视眼取下眼镜,总之当左边糊成一片,而右边某栏的亮度和左边相当时。
注意:如果您没有做任何Gamma校正(没有使用Adobe Gamma之类的软件,或虽使用了但校正系数设为1.0),测得的才是显示器的Gamma,否则只能称为系统Gamma(或复合Gamma)。
如笔者的ACER AL1916W的GAMA值为2.0左右。
另外,通过显示器自带的ICC Profile是可以知道显示器的Gamma的,这个应该比较准。
三. 什么是Gamma校正? 从一个数字化的图片文件,到我们最终看到的图片,中间要经过许多环节。
几乎在任何一个环节上,都可以加入一些变换,以改变最终输出和最初输入的关系(类似的,这种关系被称作系统Gamma或复合Gamma)。
比如,对gamma=2.5的显示器,在数据传递到显示器之前,将其做一个gamma=0.4的变换(比如对显卡缓存中的数据,d’ = d ^ 0.4),这样就能从总体上得到一个线性的关系。
注意这里有一点混乱。
通常我们说做一个gamma=c的校正,意思是指做output = input ^ (1/c)的变换。
有一个倒数关系。
图:Gamma校正示意图 对于PC,显示器的Gamma是2.2左右(可能以前更多的是2.5,现在好像趋向2.2了),一般没有内置的校正,所以我们说Adobe Gamma对Windows系统默认的校正系数2.2。
对于MAC,显示器的Gamma是2.5,硬件内置了1.4的校正,所以它还需要2.5/1.4~=1.8的校正才成为线性的。
下文对各种系统下的gamma 校正过程有更详细的说明。
四. Gamma校正可能发生在哪里 4.1. 系统级(硬件、操作系统) 显示器内没有听说过有何补偿,即使有,它们也对外呈现一定的gamma值。
主要的补偿发生在显卡及其驱动程序类。
如果显卡硬件不支持,则由驱动程序软件完成。
在Windows中,上层通过调用驱动程序的一个接口函数(DrvIcmSetDeviceGammaRamp)向其传递Gamma校正表(LUT),这个表的大小是3*256项(每项16字节),对应于RGB三个通道,每个通道256级。
描述这一细节,可以对有些事情更有把握: * 这种校正实际上可以是任意函数,而不限于gamma为幂的指数函数。
* 也是因为此,不能通过驱动程序得到系统的gamma值(因为最多只能得到那个表)。
* 这一设置对整个系统有效(任何程序,任意显示的图片都受它影响)。
以前我一直不明白Adobe Gamma和驱动程序的Gamma是什么关系,它们一起出现就不知所措。
还有人说它们是共同作用的。
现在我完全明白了,没有迭加关系,最后者的设置有效。
而且,Adobe Gamma也不必是(实际上也不是)一个驻留程序,它仅在启动时将那个表传给驱动程序就完成了它的任务。
还可以用其它程序来校正/设置gamma,下面是一个方便的小工具:Gamma Panel。
(查看本文中的图片,需要经常改变gamma,最好下一个,Free的。
)图:Gamma Panel,一个校正系统Gamma的小工具 4.2. 应用程序级 如前提到的,某些播放软件有Gamma校正功能,ACDSEE也有。
这时,它们不是修改系统的Gamma校正表,而是在解码时对当前帧/图像作了实时的Gamma 变换。
图:ACDSEE浏览图片时可加载Gamma校正功能图中左边是由IE打开的同一图片(无Gamma校正),可以看出它们的亮度不同。
(不过,黑框和白边是相同的。
) 4.3. 文件级 如前面提到的(图 1-2 ACDSEE中的曝光调节),某些图像处理软件可以调整文件的Gamma,这种调整的结果将写入文件(即相当于对图像进行某种处理)。
比如,当你的PC未进行Gamma校正(你的系统Gamma=显示器的Gamma约2.2),这时你可以把文件的Gamma调为2.2保存,你以及其它未校正系统Gamma的PC用户看到的这个图片应是正好的。
(注意,这里有一个前提即原始图片在Gamma=1的系统上看是“正好”的。
另一种方式则是将Gamma校正的系数写入文件内,而不改变文件内容,而浏览/处理软件在解码这一图像时会依据这一参数对它单独进行Gamma校正。
(这被称作“文件Gamma”。
PNG格式支持) 总之,不管Gamma校正发生在哪一环节,它们是等效的(在理想情况下/或近似地看)。
明白在哪些环节Gamma发生了怎样的变化,然后做一些乘除法就可以了。
五. 改变Gamma带来的影响 5.1. 影调的变化 通常的感觉是,系统gamma高,图像会发暗,而校正后,画面变亮。
观察下列图片。
两个对应的File Gamma=2.5的图片是为了模拟系统Gamma的变化。
或者也可以用Gamma Panel之类的工具,将Gamma校正系数设为1.0~2.5观察(每组中的第1个图片)。
图灰度图0-128, File Gamma=1.0图灰度图0-128, File Gamma=2.5图灰度图128-255, File Gamma=1.0图灰度图128-255, File Gamma=2.5图:很直观的调整Gamma值的例子 结论: * 当系统Gamma高(Gamma校正=1.0)时,看到的图像暗部影调丰富;反之,则亮部丰富。
* Gamma校正设为2.5时看到的File Gamma=2.5的图片,和校正设为1.0时看到的File Gamma=1.0的图片相当。
5.2. 颜色的变化 很显然,Gamma的变化带来亮度的变化。
而单独改变某个通道的Gamma,则会则会带来色调(Hue)的变化。
Gamma Correction = 1.0 Gamma Correction = 2.5Source Output Source OutputR 80% R 57% R 80% R 80%G 20% G ~0% G 20% G 20%B 20% B ~0% B 20% B 20% 当然,如果显示器本来就偏色,我们则可以改变某个通道的Gamma使其总体上保持均衡。
5.3. 其它 其它影响在后面有说明或提及。
六. 校正Gamma的理由 主要指是否要将系统Gamma校正到1.0。
因为校正总是存在的。
(下同) 6.1. 标准化及互换性 如果数码相机/扫描仪给你一个Gamma=1.0的图片,你最好是在系统Gamma=1.0的系统上查看;或者当你的数码图片要拿去输出时,对方系统Gamma=1.0;…… (这部分涉及到色彩空间、ICC Profile,我还不太清楚,而且接触的设备非常有限,不多说了。
) 6.2. 算法上的要求 在涉及不同灰度的混合时,就会对gamma有要求。
一个简单的例子,考虑在填充时,一半的黑(0)+一半的白(255),效果应该和50%的灰(128)相同。
但这仅在系统gamma=1.0时成立。
又如,彩色转黑白时常说的:30% R + 59% G + 11% B,也是针对gamma=1.0而言。
同样,许多算法也是针对1.0的系统gamma,否则算法内要做gamma校正。
下面是一个抗距齿(anti-alias,反走样)的例子。
图:通常情况下的边缘由于只能在矩形的点阵中画斜线,而斜线的像素值为全黑,当斜线较陡(或平)时,就会有明显的锯齿感。
图:采用anti-alias后,锯齿感没有那么明显了在Photoshop中放大查看此图片,就会发现边缘不是全黑的,而是渐变的。
(这是对anti-alias的直观理解。
)注:不要用ACDSEE放大查看,它默认的放大算法是插值的,无法看清像素的原貌。
图:anti-alias并gamma校正后,锯齿感完全消失当然,如果你保持系统gamma=1.0去查看上面的图片,就会发现第2张图完全无锯齿感,第3张图反而有一点。
(这不是也可以作为一种估计系统gamma的方法吗)七. 不校正Gamma的理由 7.1. 现实的非标准化 假定你的图片作为Web发布,你的用户(观众)的系统Gamma会是1.0吗?即使可以假定色影无忌的泡菜会用Adobe Gamma将他们的系统Gamma校正到1.0左右,但绝大多数普通用户呢?——在接触到Photoshop前,我是不知道什么Gamma的。