我无法理解名为CITemperatureAndTint的CIFilter的输入参数。文档说它有两个输入参数,它们都是2D CIVector。
我经常使用这个过滤器 - 通过实际代码,通过Core Image Fun House(来自Apple的示例项目 - “FunHouse”)和iPhoto。
我的直觉说这个过滤器应该有两个标量输入参数:一个用于温度,一个用于色调。如果您查看iPhoto的UI,您会看到:
iPhotos Temperature and Tint UI的屏幕截图:
正如所料:一个温度滑块和一个色调滑块。 苹果如何将每个滑块的值“绑定”到2D-Vector? akaru已经问过这个问题但没有回答:What's up with CITemperatureAndTint having vector inputs?
答案 0 :(得分:9)
我在Apple开了一个技术支持事件并问了同样的问题。以下是Apple工程师的答案:
CITemperatureAndTint有三个输入参数:Image,Neutral和 TargetNeutral。中性和TargetNeutral属于2D CIVector类型,和 在两者中,请注意第一个维度是指温度 第二个维度是指Tint。什么是CITemperatureAndTint filter基本上是计算一个适应RGB值的矩阵 从中性定义的源白点(srcTemperature, srcTint)到TargetNeutral定义的目标白点 (dstTemperature,dstTint),然后在输入上应用此矩阵 图像(使用CIColorMatrix过滤器)。如果中性和目标中立 具有相同的值,然后图像在应用后不会改变 这个过滤器。我不知道iPhoto的实现细节,但是 我认为两个滑动条给出温度和色调变化(即 源和目标温度和色调值之间的差异 已经)你想要添加到源图像。
现在我必须了解这个答案,但这似乎是Apple的一个非常好的回应。
答案 1 :(得分:0)
它们应该是包含色温的2D矢量。默认值(6500,0)将保持颜色不变,如here所述。您可以看到色温的哪些值可以为您提供this wikipedia link中的哪些颜色。我不确定矢量的第二个元素是什么。