我正在寻找一个简单的伽马校正公式灰度图像与在0和255之间的值。
比方说,我的屏gamma为2.2(这是一个液晶显示屏,所以我可能会需要更复杂的方法来估算,但让我们假设我的屏幕是很好的表现)。
以下哪个公式之一将是正确的呢?
Corrected = 255 * (Image/255).^2.2
要么
Corrected = 255 * (Image/255).^(1/2.2)
(那些注定是MATLAB代码,但我希望他们是可以理解的,甚至非MATLAB人)
我一直期待在互联网上,但发现这两个公式绕来绕去。 我怀疑(2)是正确的,而我的困惑是由于倾向称之为“伽马值”的实际伽玛值的倒数,但我真的很欣赏谁知道他们谈论人们一些反馈.. 。
伽马校正控制图像的整体亮度。 未修正的图像可以既看出来漂白或太暗。 假设一个计算机显示器具有2.2
的幂函数作为强度到电压响应曲线。 这只是意味着,如果将消息发送到该特定像素应具有强度等于显示器x
,它实际上将显示其具有强度等于x 2.2的像素由于发送到监视器电压的范围为0
和1
这意味着,显示的强度值会小于你想要的东西它是。 这样的显示器被认为具有的伽玛2.2
。
所以你的情况,
Corrected = 255 * (Image/255)^(1/2.2).
两个公式被使用,一个编码γ和一个解码伽马。
伽马编码被用来增加阴影值的质量时的图像被存储为整数强度值,所以做编码使用公式伽马:
encoded = ((original / 255) ^ (1 / gamma)) * 255
伽马解码被用于恢复原始值,因此该公式为:
original = ((encoded / 255) ^ gamma) * 255
如果显示器的伽马解码,你会想用一个公式来编码图像数据。