【发布时间】:2012-10-10 03:40:17
【问题描述】:
我无法完全理解伽玛校正的必要性。我希望你们能帮助我。
假设我们要显示 256 个相邻像素。这些像素应该是从黑色到白色的平滑渐变。为了表示它们的颜色,我们使用来自0..255. 的线性灰度值。由于人眼的非线性,显示器不能只将这些值转换为线性亮度值。如果相邻像素的亮度值为(1/256)*I_max, (2/256)*I_max, et cetera,我们会在较暗的区域感知到两个像素之间的亮度差异过大(渐变不平滑)。
幸运的是,显示器对人眼具有互为非线性。这意味着,如果我们将线性灰度值0..255 放入帧缓冲区,那么监视器会将它们转换为非线性亮度值 x^gamma。然而,由于我们的眼睛反过来是非线性的,我们会感知到平滑的线性渐变。显示器的非线性和我们的一只眼睛相互抵消了。
那么,为什么我们需要伽玛校正?我在书中读到我们总是希望显示器产生线性亮度值。根据他们的说法,在将灰度值写入帧缓冲区之前,必须补偿监视器的非线性。这是通过伽马校正完成的。然而,我的问题是——据我所知——当显示器产生线性亮度值时,我们不会感知到线性亮度值(即我们不会感知到平滑、稳定的渐变)。
在我看来,如果我们将线性灰度值放入帧缓冲区,那将是完美的。显示器将这些值转换为非线性亮度值,我们的眼睛再次感知线性亮度值,因为眼睛是互易非线性的。无需对帧缓冲区中的灰度值进行伽玛校正,也无需强制显示器产生线性亮度值。
我看待这些事情的方式有什么问题? 谢谢
【问题讨论】:
标签: image-processing brightness gamma luminance