1

这是标准的 fwd Gamma 2.22 (1 / 0.45) 校正公式:

for R,G,B < 0.018
R´ = 4.5 * R
G´ = 4.5 * G
B´ = 4.5 * B
for R,G,B ≥ 0.018
R´ = 1.099 * R^0.45 - 0.099
G´ = 1.099 * G^0.45 - 0.099
B´ = 1.099 * B^0.45 - 0.099

数字 0.18、4.5、1.099 和 0.099 来自哪里?我特别需要知道它们是如何派生的。

我需要知道,因为我正在编写一个伽玛校正函数,并且使用幂和缩放的简单方法,而不是上面的方法,会产生不同的结果。

4

1 回答 1

1

所以这就是我想的多远。

必须按照以下要求设计伽马校正功能(请参阅本文):

  • 0强度的电压必须为0
  • 1 强度的电压必须为 1
  • 它必须表现得像接近强度 1 的幂函数(指数 1/2.22=0.45)
  • 它必须是接近原点的线性(以减少低强度下传感器噪声的影响)
  • 它必须在 [0,1] 中连续且连续可微

所以这个问题可以通过找到定义函数 g:x->g(x) 的数字 {a,b,c,x0} 来解决,例如:

  • g(x) = a*x^.45+b in [x0,1]
  • g(x) = cx im [0,x0[
  • g(1) = 1
  • g(0) = 0
  • lim{x->x0-}(g) = lim{x->x0+}(g)
  • lim{x->x0-}(dg/dx) = lim{x->x0+}(dg/dx)

这产生以下等式:

  • a+b=1
  • c*x0=a*x0^.45+b
  • c=0.45*a*x0^-0.55

相当于:

  • a=1/(1-.55*x0^.45)
  • b=-.55*x0^.45/(1-.55*x0^.45)
  • c=.45*x0^-.55/(1-.55*x0^.45)

如果你将 x0 设置为 0.018,你会得到:

  • a=1.099
  • b=-.099
  • c=4.5

剩下的问题是:他们是如何选择 x0 的?我找不到 0.018 值的任何理由......或者他们可以从其他 3 个参数中的任何一个开始(例如,将脚趾坡度设置为 4.5,他们得出 a、b 和 x0)。

不确定这是否会解决您的问题,无论如何我希望这会有所帮助(我对数学很感兴趣)。

于 2012-05-27T19:18:37.673 回答