0

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

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

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

4

1 回答 1

1

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

这就是 mac 开发库所说的,“...

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

默认值:0.75

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

pow(s.rgb, vec3(power))

因此,要回答您的问题,请尝试比率。inputPower 的最大值是 3.00,最小值可能是 0 到 0.1。我会把你的伽玛值除以最大可能的伽玛值。然后将找到的值乘以最大 inputPower 值(2.9 到 3)。

希望这可以帮助!

于 2014-01-21T03:32:11.513 回答