【问题标题】:How to find the fractional weighting of n colors which contribute to a known color C?如何找到对已知颜色 C 有贡献的 n 种颜色的分数权重?
【发布时间】:2016-07-20 10:59:03
【问题描述】:

This is related to but not the same as this question (click to go to). 但是,链接的问题需要在此之前解决,或者至少要理解问题。这可以被认为是另一个相反的。

这个问题是,给定 RGB 中的 n 种颜色,例如

Color1 as RGB (255, 128, 128)
Color2 as RGB (128, 128, 128)
Color3 as RGB (128, 0, 128)

我们知道给定的颜色 C,找到每种颜色的分数权重,以便当这些颜色混合时,给定颜色的分数权重得到已知颜色 C。分数权重在上面的链接问题中定义,它是一个介于 0.0 和 1.0 之间的值,其中总权重等于 1.0。例如 Color1 可以是 0.2,Color2 可以是 0.2,Color3 可以是 0.6。

插值在 RGB 颜色空间中是线性的。

颜色的数量通常不会超过 5 种,通常是 2 或 3 或 4 种颜色。

请注意,很有可能无法混合这些颜色来获得颜色 C,例如,如果我们有两种非常红色的颜色,而我想要颜色 C(即绿色),则无法混合两种红色变绿。所以在那种情况下,没有解决办法。

另外,在某些情况下,可能有多种方法可以混合颜色以制作颜色 C。

【问题讨论】:

  • 您是否考虑过将其表述为system of linear equations
  • 同意@Mats,这是颜色的线性代数。例如。如果颜色集不是 RGB 空间的basis,那么它们不能混合形成一些颜色。

标签: image-processing computer-vision interpolation linear-interpolation bilinear-interpolation


【解决方案1】:

是的,所以线性方程有助于解决问题。一些解决问题的 Java 代码位于此处,请注意它是使用 Scala SBT 构建的,但它的 Java 代码。

https://github.com/PhilAndrew/betweenrgb

这里测试加权颜色的合并:

https://github.com/PhilAndrew/betweenrgb/blob/master/src/test/java/between/rgb/FindWeightedColorsTest.java

【讨论】:

    猜你喜欢
    • 2016-11-23
    • 1970-01-01
    • 2012-11-01
    • 2011-08-26
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多