核心图像中CIGammaAdjust过滤器的输入功率值

时间:2013-07-31 14:26:06

标签: ios core-image cifilter ciimage

我想使用核心图像滤镜CIGammaAdjust执行自动伽玛校正。 CIGammaAdjust需要设置“inputPower”值,如下面的代码所示:

CIFilter* gammaFilter = [CIFilter filterWithName:@"CIGammaAdjust"];
[gammaFilter setValue:resultImage forKey:@"inputImage"];
[gammaFilter setValue:???  forKey: @"inputPower"];
resultImage = [gammaFilter valueForKey: @"outputImage"];

问题是,我应该如何计算输入功率的值?我有计算图像的伽玛值。如何将Image gamma值转换为输入功率?我尝试仅使用伽马值的倒数,但似乎没有给出正确的结果。

1 个答案:

答案 0 :(得分:1)

https://developer.apple.com/library/mac/documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html#//apple_ref/doc/uid/TP30000136-DontLinkElementID_69

这就是mac dev库所说的,“......

inputPower: 一个NSNumber对象,其属性类型为CIAttributeTypeScalar,其显示名称为Power。

默认值:0.75

讨论: 该滤波器通常用于补偿显示器的非线性效应。有效地调整伽玛会改变黑色和白色之间的过渡斜率。它使用以下公式:

pow(s.rgb,vec3(power))

所以要回答你的问题,试试比率。 inputPower的最大值我相信3.00,最小值可能是0到.1。我会将您的伽玛值和最大可能的伽玛值分开。然后将找到的值乘以max inputPower值(2.9到3)。

希望这有帮助!