【发布时间】:2013-04-02 06:37:11
【问题描述】:
我正在尝试以编程方式更改白点/白平衡。这就是我想要完成的:
- 从图像中选择一个(随机)像素
- 获取该像素的颜色
- 转换图像,使该颜色的所有像素都转换为白色,所有其他颜色都转换为匹配
我已经完成了前两步,但第三步并没有真正奏效。
起初我认为,根据 Apple 的文档 CIWhitePointAdjust 应该可以完全做到这一点,但是,虽然它确实改变了图像,但它并没有做我想要/期望它做的事情。
然后看起来CIColorMatrix 应该可以帮助我改变颜色,但我(现在仍然)不知道用那些讨厌的向量输入什么。 我已经尝试了几乎所有的东西(所有向量上的 RGB 值相同,每个向量上的对应值(R 表示 R 等),1 - 对应值,1 + 对应值,1/对应值。RGB 值和不同的(1 - x , 1 + x, 1 / x)。
我也遇到过CITemperatureAndTint,根据 Apple 的文档也应该有所帮助,但我还没有弄清楚如何从 RGB 转换为温度和色调。我已经看到了关于从 RGB 转换为 Temperatur 的算法和公式,但没有看到关于色调的内容。不过我会继续尝试。
非常感谢任何帮助!
【问题讨论】:
-
白点调整不是您可以在某些行中解释的。我在我的学士论文中写了一整章来讨论这个问题。当然,您可能不需要所有背景信息。我刚刚尝试了 CIWhitePointAdjust,我无法想象它会被用来做什么。您能说出您的应用程序中的确切用例吗?
-
我正在尝试构建一个简单的照片编辑器。我想挑选一张在光线较暗的情况下使用设备拍摄的照片(例如餐厅里的白盘食物),颜色错误(白盘通常是黄色)并转换照片以使盘子将是白色,其他颜色将相应更改。
-
我认为您需要研究色彩适应。需要一些数学运算,但所有公式都可用。 www.brucelindbloom.com 是您最好的朋友。作为一个公平的警告:这不是微不足道的!
-
谢谢,我的研究已经让我走到了这一步。已经访问了 Bruce Lindblooms 网站并研究了数学。
标签: ios objective-c core-image