首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS白点/白平衡调整示例/建议

iOS白点/白平衡调整示例/建议
EN

Stack Overflow用户
提问于 2013-04-10 20:15:32
回答 1查看 3.3K关注 0票数 4

我正在尝试以编程方式更改白点/白平衡。这就是我想要完成的:

  • 从图像中选择一个(随机)像素
  • 获取该图像的颜色,以便该颜色的所有像素都将转换为白色,而所有其他颜色将移动以匹配

我已经完成了前两步,但第三步并不是真的有效。

起初,我认为,根据苹果的文档,CIWhitePointAdjust应该是实现这一目标的工具,但是,尽管它确实改变了图像,但它并没有做我想要/期望它做的事情。

然后,看起来CIColorMatrix应该可以帮助我转换颜色,但我当时(现在仍然是)不知道用这些烦人的向量输入什么。我已经尝试了几乎所有的方法(所有向量上的RGB值相同,相应的值(R表示R,等等)在每个向量上,1-对应值,1+对应值,1/对应值。RGB值和不同(1 - x,1+ x,1/ x)。

我也遇到了CITemperatureAndTint,根据苹果的文档应该也有帮助,但我还没有想出如何从RGB转换为温度和色调。我见过从RGB到Temperatur转换的算法和公式,但没有关于色调的。不过,我将继续尝试这一点。

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-12 21:11:41

经过大量的实验和数学运算,我终于让我的应用程序几乎按照我想要的方式工作了。

如果其他人会发现自己面临着类似的问题,那么我就是这么做的。

我最终使用了CITemperatureAndTint滤镜,提供了从所选像素的RGB值和用户提供的色调值计算出的开尔文颜色。

要到达Kelvins I:

  • 首先使用D65光源(即从XYZ转换为Yxy的Daylight).
  • then )将RGB转换为XYZ。这两种转换都是使用从EasyRGB.
  • I找到的算法进行的,然后使用我在论文here.

中找到的McCamry公式从Yxy计算开尔文

这些步骤得到了大致的图像,但并不完全正确,所以我为用户添加了一个UISlider,以提供从-100到100的色度值。

通过选择一个应该是白色的点,并从色调比例的正值中选择值(我手机上的所有图像都倾向于更黄),现在可以将图像转换为(更多)中性颜色。耶!

我提供了计算的温度和用户选择的色调作为inputNeutral向量值。

6500 (D65日光)和0作为CITTemperatureAndTint过滤器的inputTargetNeutral矢量值。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15925534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档