微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有用于混合油漆颜色的逆算法?

如何解决是否有用于混合油漆颜色的逆算法?

当地油漆店可以混合我选择的任何 RAL 或 NCS 颜色,但考虑到所需的最小体积,我将未使用的油漆扔进垃圾桶是在浪费钱。我想购买标准的预混合不透明丙烯酸涂料颜色 - 蓝色、红色和黄色(RYB 原色)、白色(变亮)和黑色(变暗)- 我应该很高兴。

我还可以购买预先混合的绿色、橙色和紫色(RYB 二次色),以跳过混合原色。 (还有其他预先混合的颜色,如灰色和棕色,但让我们忽略它们。)

我有一个色度计,我可以测量这些油漆颜色的 RGB 值。

因此,我定义了一组 8 种已知 RGB 值的油漆颜色。

我的问题很明显。是否有算法将所需的目标 RGB 颜色作为输入并输出源颜色的比例数量? (我相信有,打印机怎么知道如何在白纸上混合 CMYK。好吧,由于颜料和油漆颜色的不同吸收和反射特性,处理实际油漆颜色比处理光混合要复杂得多,但无论如何...)

混合建议比例成分的产品不一定(也不可能)与目标颜色完美匹配,但要尽可能接近。

算法应该最佳地使用源颜色,即它不会将蓝色和黄色混合成绿色,而是使用可用的绿色。

如果我从定义的集合中删除绿色,算法当然应该使用蓝色和黄色来获得绿色。

如果我将已经提到的灰色和棕色或更多颜色添加到定义的集合中,算法应该在必要时使用它们。

算法不应使混合过于复杂,即使在不必要的情况下也应尝试使用每种可用的源颜色。应该有选项来限制可以使用的源颜色数量。我的意思是,对于 8 种源颜色,我告诉算法只使用 3 种颜色,算法将选择最接近目标颜色的最佳组合。

了解所需目标颜色和预期混合颜色之间的差异(例如,百分比)将是一个很好的指标。

这可能吗?如果没有,我仍然可以手动混合所需的多种颜色,记下比例,测量 RGB 值并创建一个固定颜色图表,以便将来获得一致的结果。这样的算法将是了解如何开始混合的好工具。

解决方法

  1. 您需要将归一化的 RGB 值作为输入

    这意味着对于任何灰度颜色 R==G==B 如果不是真的那么你还没有规范化 RGB 空间并且需要像这样通常需要 sclae 它:

    R = 0.30*R'
    G = 0.59*G'
    B = 0.11*B'
    

    还希望您的色度计有自己的光源,否则您需要使用特定的照明条件。

  2. 标准化 CMYK 数学

    再次对于灰度颜色 C==M==Y 从 RGB 到 CMY(假设 8 位值)的数学转换是:

    C = (255 - R)
    M = (255 - G)
    Y = (255 - B)
    

    如果你也有黑色,那么你可以应用这个:

    K=min(C,M,Y)
    C-=K
    M-=K
    Y-=K
    
  3. 未标准化的 CMY

    您只需像在 RGB 中一样应用缩放即可。该值将取决于您的油漆。但是我不确定它是否会保持不变,因为油漆可能会发生化学反应(只是猜测)。如果我们假装是,那么首先进行测量。创建尽可能好的灰度阴影并记住 C、M、Y 绘制比例(即体积或重量)。将比率除以最大的一个(这会将范围归一化为 <0,1>),结果是您的系数,只需乘以即可将非归一化 CMY 转换为归一化 CMY。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。