我已经为初学者开设了一门图像处理课程,并试图了解 Gamma 和 Gamma Correction。不幸的是,我似乎在多个网站上遇到了相互矛盾的解释。我不是艺术家或计算机科学家(只是一个非常谦虚的初学者),但我想介绍我到目前为止所了解的内容,以便您可以纠正我认为令人困惑的内容?
到目前为止,我似乎找到了两种不同的解释,有点像这样:
拳头解释:补眼
人眼不能准确地解释光强度的变化;如果我将光源输出的光强度加倍,则根据定义,场景中的光强度会加倍。当你有一个非常黑暗的房间并增加真实的光强度比如 10% 时,我们的眼睛和大脑解释了更高的百分比增加。相应地,在明亮的情况下,如果你将真实光强度增加 Y%,我们的眼睛/大脑会解释为低得多的增加。因此,我们对较暗的场景更敏感,而对较亮的场景则不那么敏感。我们的眼睛感知不同光强度的非线性方式曲线如下。
然而,相机捕捉到“真实”的光强度;如果您将场景中的光加倍,相机会检测并记录其传感器上的“加倍”光(场景太亮,但会强制相机对其数据进行标准化,因此最大强度为 255)。
因此,根据我从一半的解释中了解到的情况,这就是 Gamma 的用武之地:场景中的光线以“真实”强度照射相机,称之为x。相机通过将每个像素的强度 x 的值提高到 1/2.2 次方来修改它们捕获的原始数据,以便传递到计算机上的每个像素的强度值现在具有人眼可以检测到的强度在你的场景中。
监视器然后对这些强度应用一个反函数,将所有像素的强度提高到 2.2 的幂,从而将强度恢复到它们原始的“真实”x 值,就像它们在拍摄相机时实际在场景中一样。
这些“真实”强度就是显示器显示的内容,当这些发射的光线照射到我们的眼睛时,我们的眼睛/大脑会应用它们对强度的非线性解释,所以我们在屏幕上看到的图像看起来就像我们在现场而不是相机。
现在 - 这是我已经设法从我找到的一半来源中理解它的解释。但这就是我感到困惑的地方;如果在监视器上进行伽马校正的目的是将像素强度修改回相机可以检测到的值,那么为什么相机首先要应用其 1/2.2 伽马校正?为什么不让相机捕捉真实的原始强度并将它们显示在监视器上,这样我们的眼睛就会像我们真的在那里一样解读场景呢?
这让我想到了我发现的第二组解释:
我上面的建议是让相机只捕捉场景颜色的原始、真实强度,直接将这些显示到监视器上而不进行伽马修改,以便这些“真实”场景强度到达并由我们的眼睛解释(就好像它们实际上是在场景中) - 是相机/屏幕制造商更愿意做的事情。但是,它们不仅仅是因为遗留原因:数码相机在捕获图像后必须应用伽马函数,因为旧技术出于某些不同的原因这样做,因此计算机屏幕必须应用逆“伽马校正”到他们收到的数据,以便它以“真实的强度”到达眼睛。
对我来说,第二个解释似乎有点奇怪——即行业会做所有这些伽玛值只是为了遵守旧的遗留技术标准——但我似乎无法解决解释 1 的问题?所以我不确定哪个是正确的。
然而,另一个很可能的情况是我完全误解了 Gamma 背后的想法。如果是这样,如果有人能指出我哪里出错/列出我的理论实际上是一个看似简单的主题,那将是非常有帮助的?
非常感谢您的帮助。