在安卓上对一张图片进行伽马校正

3

我正在开发一个提供用户一些图像处理功能的Android应用程序。但在应用任何图像变换函数之前,我想进行伽马校正以改善图像质量。我知道如何执行伽马校正,但是不知道应该使用什么伽马值,因为图像本身没有记录创建图像时所使用的伽马值。有关如何为特定图像选择伽马值的任何信息将非常有帮助。


大多数图像已经使用标准伽马2.2创建,因为如果没有这样做,它们看起来会太亮或太暗。超出此范围的任何伽马应用都是纯主观的。您认为使用伽马函数可以改善您的图像吗? - Mark Ransom
1
如果曝光不足,拍摄的图像将会很暗,细节也无法看清。如果我应用低于1的伽马值,则会使图像变得更亮,细节也能够显示出来。对于非常明亮的图像,伽马值大于1将有所帮助...但我不希望用户进行这些调整。应用程序应该为用户完成这些操作,就像大多数数码相机一样。现在选择伽马值是问题所在吗? - karn
1个回答

2

看起来你真正想要的是调整图像的平均亮度来匹配某个最佳值。是的,伽玛函数可以实现这一点。实际上,在曝光过度或不足的情况下,简单的线性乘法可能更好。但是,现在让我们先使用伽玛。

测量图像的平均亮度,并称其为 a,取值范围为 0-255。您有一个用于最佳亮度的目标,我们将其称为 t。如果未知伽玛值为 g,则可以得到以下公式:

t/255 = (a/255)^g

解决 g 的公式为:
g = log(t/255) / log(a/255)

我这里有一个疑问。t是什么? - karn
@karn,你需要自己尝试实验找出来。我会从186开始,因为那是中间值。 - Mark Ransom
是的,可能需要稍微调整一下数值才能获得最佳值。顺便说一句,亮度是主观的,因此可能不存在完美的唯一值。你的答案给了我一个起点...谢谢... - karn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接