ios - Core Image 中 CIGammaAdjust 滤波器的输入功率值

标签 ios core-image cifilter ciimage

我想使用 Core Image 滤镜 CIGammaAdjust 执行自动 Gamma 校正。 CIGammaAdjust 需要设置“inputPower”值,如以下代码所示:

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

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

最佳答案

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

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

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

默认值:0.75

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

pow(s.rgb, vec3(power))

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

希望这有帮助!

关于ios - Core Image 中 CIGammaAdjust 滤波器的输入功率值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973108/

相关文章:

iphone - 从 Photoshop 到 iOS 的颜色特定色相/饱和度

ios - 为 SKSpriteNode 添加发光效果

ios - 使用 CIGaussianGradient 滤波器进行核心图像的示例

ios - 无法在 iOS Swift 3 中单击 UIBarButtonItem 添加目标和运行功能

iphone - Objective-C 运行时 : Swizzled method name?

objective-c - 在 UIPickerView 的 numberOfRowsInComponent 中返回 [anArray count] 时出错

ios - 如何使用多个核心图像过滤器影响图像(不重置结果)

ios - 条形码未生成

ios - 如何将任意颜色的色度键滤镜应用到实时摄像头源ios?

ios - 在应用程序启动后立即使用 openURL 时出现延迟