Colors 实现Kubelka Munk,如Krita,混合颜色(颜色),如油漆

Colors 实现Kubelka Munk,如Krita,混合颜色(颜色),如油漆,colors,Colors,是否有人知道在哪里可以找到或实施类似于天然涂料的颜色混合,这是一个开源项目,但我找不到任何地方可以共享这种或类似的方法来“自然”混合颜色。这可能是商业敏感或隐私,但如果你不问,你不会发现 请随意重复使用我们在krita中的代码。它在calligra/krita/plugins/extensions/painteryframework中。它确实需要色素库作为备份,但我想你可以很容易地从中提取出来 但是请注意,该代码在GPLv2+许可证下。如果重用代码或illuminants文件,您的代码也需要是G

是否有人知道在哪里可以找到或实施类似于天然涂料的颜色混合,这是一个开源项目,但我找不到任何地方可以共享这种或类似的方法来“自然”混合颜色。这可能是商业敏感或隐私,但如果你不问,你不会发现

请随意重复使用我们在krita中的代码。它在calligra/krita/plugins/extensions/painteryframework中。它确实需要色素库作为备份,但我想你可以很容易地从中提取出来

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


(有关更多信息,请联系我--boud@valdyas.org或者irc.freenode.net上的boud#krita,我是krita的维护者。

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


仅RGB值无法提供足够的信息来执行真正的Kubelka-Munk计算,因为您需要整个可见光谱的吸光度和散射曲线。相反,您可以从RGB值生成具有代表性的反射曲线,然后使用反射信息执行减法混合,例如,通过计算两条反射曲线的加权几何平均值。

您是否询问是否有人在Cocoa中实现了这一点?该功能本身是通过谷歌。很好的定位。不,我是问如何使用这个功能,或类似功能,自然混合颜色-如视频中所示。我认为棘手的部分是将rgb值转换为函数的输入。非常感谢您的回答!我要离开一周,但之后会给你发一封电子邮件。看起来这已经不在当前的克里塔代码中了,它有没有演变成克里塔的其他代码?数字颜色混合器似乎是最接近的。源代码在github上,隐藏在历史中:感谢您分享您的颜色混合器实现。然而,我认为它不能正常工作。例如,混合红色(255,0,0)和黄色(255,255,0),我应该得到一种橙色:(255,128,0为例),但我得到:255,2,1,这是相同的红色。有什么想法吗?我做错什么了吗?不,你是对的,看起来我的实现仍然存在一些混合问题。我尝试将我的RGB颜色空间转换为RYB来使用,但没有解决问题。我有点被它吐出来的一些颜色混合弄糊涂了。然而,许多似乎是正确的…此Matlab代码将sRGB转换为基于波长的光谱反射率:
函数反射率=LSS(B12,sRGB)%compute目标“线性rgb”值sRGB=sRGB(:)/255;%如果sRGB(i)对混搭的代码感到抱歉,请将i=1:3的列向量转换为0-1。我不知道如何在注释中获得换行符。此外,如果上述代码中的任何反射率值为负值,则需要使用a。更正:不要按照我的建议平均反射率曲线。这将为您提供与简单平均RGB值相同的结果!相反,如果要模拟重叠的滤色器(这是一种“更强”的减法混合),请使用来模拟油漆混合,或者将曲线相乘。