我想使用核心图像滤镜CIGammaAdjust执行自动伽玛校正。 CIGammaAdjust需要设置“inputPower”值,如下面的代码所示:
CIFilter* gammaFilter = [CIFilter filterWithName:@"CIGammaAdjust"];
[gammaFilter setValue:resultImage forKey:@"inputImage"];
[gammaFilter setValue:??? forKey: @"inputPower"];
resultImage = [gammaFilter valueForKey: @"outputImage"];
问题是,我应该如何计算输入功率的值?我有计算图像的伽玛值。如何将Image gamma值转换为输入功率?我尝试仅使用伽马值的倒数,但似乎没有给出正确的结果。
答案 0 :(得分:1)
这就是mac dev库所说的,“......
inputPower: 一个NSNumber对象,其属性类型为CIAttributeTypeScalar,其显示名称为Power。
默认值:0.75
讨论: 该滤波器通常用于补偿显示器的非线性效应。有效地调整伽玛会改变黑色和白色之间的过渡斜率。它使用以下公式:
pow(s.rgb,vec3(power))
所以要回答你的问题,试试比率。 inputPower的最大值我相信3.00,最小值可能是0到.1。我会将您的伽玛值和最大可能的伽玛值分开。然后将找到的值乘以max inputPower值(2.9到3)。
希望这有帮助!