我正在尝试以编程方式更改白点/白平衡。这就是我想要完成的:
- 从图像中选择一个(随机)像素
- 获取该像素的颜色
- 转换图像,使该颜色的所有像素都转换为白色,所有其他颜色都移动以匹配
我已经完成了前两步,但第三步并没有真正成功。
起初我认为,根据 Apples 文档 CIWhitePointAdjust应该是实现这一目标的事情,但是,尽管它确实改变了形象,但它并没有按照我希望/期望的方式去做。
然后似乎CIColorMatrix应该是可以帮助我改变颜色的东西,但我曾经(现在仍然)不知道用那些讨厌的向量输入什么。 我已经尝试了几乎所有的东西(所有向量上的相同 RGB 值,每个向量上的对应值(R 代表 R 等),1 - 对应值,1 + 对应值,1/对应值。RGB 值和不同的(1 - x , 1 + x, 1/x).
我也遇到过CITemperatureAndTint那,根据 Apples 文档也应该有所帮助,但我还没有弄清楚如何从 RGB 转换为温度和色调。我见过有关从 RGB 转换为 Temperatur 的算法和公式,但没有看到关于色调的算法和公式。不过,我会继续对此进行一些试验。
非常感谢任何帮助!
最佳答案
经过大量实验和数学计算,我终于让我的应用程序几乎按照我想要的方式工作。
如果其他人会发现自己面临类似的问题,那么这就是我所做的。
我最终使用了 CITemperatureAndTint 滤镜,该滤镜根据所选像素的 RGB 值和用户提供的色调值计算出以开尔文为单位的颜色。
前往 Kelvins I:
- 首先使用 D65 光源(即日光)将 RGB 转换为 XYZ。
- 然后从 XYZ 转换为 Yxy。这两种转换都是使用从 EasyRGB 中找到的算法进行的.
- 然后我使用我在论文 here 中找到的 McCamry 公式从 Yxy 计算开尔文.
这些步骤使图像大致准确,但还不够准确,所以我添加了一个 UISlider 供用户提供范围从 -100 到 100 的色调值。
通过选择一个应该为白色的点并从色调比例的正侧选择值(我在手机上的所有图像往往更黄),现在可以将图像转换为(更多)中性色。是的!
我提供了计算出的温度和用户选择的色调作为 inputNeutral 矢量值。
6500(D65 日光)和 0 作为 inputTargetNeutral 矢量值到 CITTemperatureAndTint 过滤器。
关于iOS 白点/白平衡调整示例/建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15925534/
如何匹配未被反斜杠转义的平衡定界符对(其本身未被反斜杠转义)(无需考虑嵌套)?例如对于反引号,我试过了,但是转义的反引号没有像转义那样工作。regex=/(?!$1:"how\\"#expected"how\\`are"上面的正则表达式不考虑由反斜杠转义并位于反引号前面的反斜杠,但我愿意考虑。StackOverflow如何做到这一点?这样做的目的并不复杂。我有文档文本,其中包括内联代码的反引号,就像StackOverflow一样,我想在HTML文件中显示它,内联代码用一些spanMaterial装饰。不会有嵌套,但转义反引号或转义反斜杠可能出现在任何地方。
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby-vips的github页面上的链接,我们将不胜感激!如果有ruby-
我已经有很多两个值数组,例如下面的例子ary=[[1,2],[2,3],[1,3],[4,5],[5,6],[4,7],[7,8],[4,8]]我想把它们分组到[1,2,3],[4,5],[5,6],[4,7,8]因为意思是1和2有关系,2和3有关系,1和3有关系,所以1,2,3都有关系我如何通过ruby库或任何算法来做到这一点? 最佳答案 这是基本Bron–Kerboschalgorithm的Ruby实现:classGraphdefinitialize(edges)@edges=edgesenddeffind_maximum_
我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162