2012-04-20 62 views
4

是否有人知道在哪里可以找到或实施Kubelka-Munk function以混合天然颜料之类的颜色? Emanuelle Tamponi implemented this function in Krita,一个开源项目,但我找不到任何地方或者类似的方法被分享到'自然'混合颜色。这可能是商业敏感或私密,但如果你不问你不会发现!像Krita一样实施Kubelka-Munk来混合颜色(颜色),如油漆

+0

你问是否有人在可可中实现了这个?该功能本身[通过Google轻松找到](http://www.chemistry.nmsu.edu/studntres/chem435/Manuals/Cary_100/Cary_100_app_maths/source/app_maths/mt_kubelka_munk_function.htm)。 – 2012-04-21 00:40:00

+0

好点。不,我问如何使用此功能或类似功能自然混合颜色 - 如视频中所示。我认为棘手的部分会将rgb值转换为函数的输入。 – glenstorey 2012-04-21 01:17:25

+1

祈祷 - 告诉为什么-1? – glenstorey 2012-07-02 00:33:21

回答

4

随意重新使用我们在krita中的代码。它在calligra/krita/plugins/extensions/painterlyframework中。它确实需要色素库作为备份,但我想你可以很容易地从那里抽象出来。

但请注意,该代码是在GPLv2 +许可证下。如果您重复使用代码或光源文件,您的代码也需要成为GPL。

(欲了解更多信息,请联系我 - [email protected]或在irc.freenode.net的#krita上发布消息,我是Krita的维护者)。

+0

非常感谢您的回答!我离开了一个星期,但之后会发一封电子邮件给你。 – glenstorey 2012-04-22 04:10:33

+0

您是否实现了它?我现在正在处理同样的问题.. – 2013-02-19 08:08:29

+0

看起来这不再是现在的Krita代码,它是否已经演变成Krita中的其他东西?数字混色器看起来最接近。 – 2017-12-13 14:01:18

2

这是我创建的一个使用简化的Kubelka-Munk模型的实现。它假定假定所有颜色在混合时具有相同的浓度,并且所有颜色都是不透明的。如果它是有用的,随时以任何你想要的方式使用它。

https://github.com/benjholla/ColorMixer

+0

感谢您分享您的调色器实施。但是,我认为它无法正常工作。例如,对于混合红色(255,0,0)和黄色(255,255,0),我应该得到一种橙色:(例如255,128,0),但我得到:255,2,1,这是同样的红色。有任何想法吗?难道我做错了什么? – 2013-02-18 12:16:20

+0

不,你是对的,看起来像我的实施仍然可能存在一些混合问题。我试着将我的RGB色彩空间转换为RYB来处理,但那并没有解决它。我有点被它吐出的一些色彩混合物困住了。许多似乎然而正确... – 2013-03-31 18:00:21

2

没有单独RGB值提供给执行真正库贝尔卡 - 蒙克的计算,因为你既需要吸收和整个可见光谱散射曲线的足够信息。相反,您可以根据RGB值生成代表性反射曲线,然后使用反射信息执行减法混合,例如通过计算两个反射曲线的加权几何平均值。

+0

这Matlab代码将转换的sRGB到波长为基础的光谱反射率: '函数的反射率= LSS(B12,sRGB)可 %计算目标 “线性RGB” 值 的sRGB =的sRGB(:)/255;如果sRGB(i)<0.04045 rgb(i)= sRGB(i)/12.92,则%转换为0-1列向量 (对于i = 1:3 ) (i)=((sRGB(i)+0.055)/1.055)^ 2.4;其中, end end reflectance = B12 * rgb;' Matrix B12 is found [here。](http://scottburns.us/wp-content/uploads/2015/04/B12-matrix.txt)一旦两个sRGB颜色转换为反射曲线,混合曲线(平均或更好,得到它们的“加权几何平均数“)。 – 2015-05-01 09:28:56

+0

对不起,关于泥码。我无法弄清楚如何在评论中获得换行符。 – 2015-05-01 09:36:08

+0

另外,如果上述代码中的任何反射率值都是负值,那么[更复杂的版本](http://scottburns.us/wp-content/uploads/2015/04/ILSS.txt)需要使用。 – 2015-05-01 11:45:02