2012-05-17 40 views
3

我想调整使用Java的图像曝光。我知道在Java 2D中有现成的功能来完成这项工作。但我也想知道它如何在颜色层面上工作。我在网上做了一些研究,它说我们可以用R,G,B乘以某些参数来实现过度曝光,参数是什么?还有如何曝光不足?提前致谢!如何在java中调整曝光?

回答

2

您可能会发现这个页面是有用的,对一般的曝光功能一些非常详细的信息:

然而,在一般情况下,曝光调整是所有关于使用某种形式的移动的颜色曲线光滑单调函数的范围0..1什么映射到同一个0..1范围:

  • 它需要单调(ALWA ys不断增加),以便在转换后较亮的区域保持比较暗的区域要轻
  • 它需要平滑,以便您不会在颜色渐变中创建突然跳跃/绑定
  • 它需要对范围0起作用。 1,因为那是你的(标准化)RGB颜色值!

这样的功能的一个简单的例子是:

new component value = (old component value)^k 

这里K> 1的参数值将图像变暗,K < 1将图像变亮。你可以玩参数和公式,直到你得到你喜欢的效果。

+0

谢谢!我试过你的方法,它的工作原理!我更容易控制单个k,而不是分别调整R,G,B的参数!我会浏览你推荐的资源,尽管看起来有点复杂。还有一个问题,你是指“使用某种形式的平滑单调函数”是什么意思?从我的理解到你的答案,我们只需要改变旧元件价值的指数值来调整曝光度,那么怎么会有“某种形式”呢?请赐教! – Tony

+0

有许多不同的“平滑单调函数”符合标准。我给了你一个非常简单/方便的单一参数。在模拟光线对相机传感器的影响方面,某些功能可能更加物理上逼真,有些功能可能会给您带来更大范围的艺术效果(例如对光线/黑暗区域进行更好的控制)。但最终,您可以选择适合您尝试实现的效果的任何作品! – mikera

+0

够公平的。再次感谢!它确实解决了我的问题。如果需要,我可以去查看其他功能。 – Tony