RGB颜色的普通混合与绘画中的混合颜色有很大的不同,它是光的混合,而不是颜料的混合。
例如:
Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128)(应该是蓝色+黄色=绿色)
有任何已知的颜色混合算法可以像混合真实颜色那样工作吗?
我的方法
我已经试过以下几点:
将两种颜色转换为HSV和混合色调(乘以从饱和度计算出的系数),并为饱和度和值通道提供简单的平均值。然后我计算出两种颜色的平均亮度,并调整得到的颜色来匹配这个亮度。这很好,但色调的混合有时是错误的,例如:
Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°)我已经发现,有时我需要将色调值移动360°(当色差大于180°时)。
Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)但这种转变也不是很好,例如:
Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°) + Red (Hue 0°) --> shifting is performed (the difference is greater than 180°)
Cyan (Hue 181°) + Red (Hue 360°) = Hue 270.5°(色相179 +红色)和(色调181 +红色)导致两种完全不同的颜色。
然后,I尝试了CIE颜色空间(如Photoshop),这是为了更接近人类对颜色的感知而设计的。
我只对每个对应的两个通道使用了一个简单的平均值,但是结果并不令人满意,例如,我用蓝色(98,-16,93)和黄色(30,68,-112)得到了粉红色(64,26,-9.5)。这些系数取自Photoshop。
也许如果我用的是比一般人更不同的手术,那就行了,但我不知道是什么。
CMYK没有工作太,结果就像在RGB或实验室中一样。
在所有这些颜色空间中,似乎既不是平凡的加性,也不是减法的色混合,都不会产生自然的结果。
工作实现
克里塔-粉彩搅拌机
光栅图形编辑器Krita在某一点上实现了更逼真的色彩混合:http://commit-digest.org/issues/2007-08-12/ (画家混频器插件)
他们说,这是第一个使用Kubelka和Munk方程描述颜料行为的特殊技术的公开应用程序。
这是Krita混合色的视频:https://www.youtube.com/watch?v=lyLPZDVdQiQ
FiftyThree纸
还有iOS纸张应用程序中调色的探讨是由FiftyThree开发的。他们描述了他们是如何在这个地区进行创新和实验的,他们还提供了蓝色和黄色混合的样品,这些样品会产生绿色。然而,实际的过程或算法并没有得到真正的描述。
引用:
“在寻找一种很好的混合算法时,我们最初尝试在不同的颜色空间进行插值: RGB、HSV和HSL,然后是CieLAB和CieLUV,结果令人失望,”陈说。“我们知道红色和黄色应该产生橙色,或者红色和蓝色应该变成紫色--但无论你使用什么颜色,都无法得到这些颜色。有一条工程公理:做最简单的事情,这可能是可行的。好吧,我们已经尝试了最简单的方法,但他们根本就感觉不到。”
和Krita一样,文件实现了Kubelka-Munk模型:
..。库贝尔卡-蒙克模型每种颜色至少有六个值,包括每种RGB颜色的反射和吸收值。“虽然屏幕上的颜色的外观可以用三维来描述,但颜色的混合实际上是在一个六维空间中发生的,”53岁的共同创始人兼首席执行官Georg解释道。库贝尔卡-蒙克的论文让研究小组将一个美学问题转化为一个数学框架。..。
从所有这些信息来看,基于Kubelka模型的实现似乎是前进的方向,并提供了更接近现实的结果。
尽管这看起来是一个复杂的过程,但是我还没有看到很多关于如何实现这样的东西的好信息。
相关问题
这些问题都是在这个问题之后发布的,都是关于同一件事的。
,他们中没有人真正有答案。
其他相关链接和资源
发布于 2022-03-31 18:56:57
有一种新颖的(2022年2月) 在2分钟的论文中展示技术。
用户称其为“混合箱”,而且该技术是开源的(请注意许可,在github上可以找到算法)。目前Rebelle 5正在实施这种混色技术,在最近的将来可能会有更多的程序出现。
国际海事组织最重要的一点是它在实现上的简单性,以及你可以轻易地把它开箱即用。他们的论文也写得很好(据说--我没看过)。
发布于 2009-08-29 13:47:35
正确的答案是否定的,因为对于“真实世界中的色彩混合”是如何工作的,没有正确的工作模式。它过于复杂和有条件,根本不像我们在学校学到的简单的红蓝黄的东西(它实际上需要所有的化学和许多物理和生物学来解决)。
然而,简单的答案是:是的,使用减法混合而不是添加剂混合。
我们在小学时学到的颜色混合是基于颜料的组合,这是一种减色混合的形式(非常简单)。我们加在一起的颜色越多,颜色就越暗,因为每一种色素都会减少一点光。
另一方面,几乎所有的计算机色彩方案都是加性的,因为它们是基于组合光波(非常简单地),所以它们变得更亮,因为每种颜色都会增加一点光。
RGB+方案在某种程度上是对我们在大多数美国小学(即RBY-)学到的减法方案的补充。然而,它们并不完全匹配,它们之间很难相互转换(现在研究.)
好的,如果您只想从RGB中的相加组合切换到减法组合,您可以使用以下反向刺刀式公式组合两种颜色:
NewColor.R = (Color1.R * Color2.R)/255
NewColor.G = (Color1.G * Color2.G)/255
NewColor.B = (Color1.B * Color2.B)/255调整色极差(G到Y,然后回到G)要困难得多.
有人指出,这会产生黑色的例子问题,从技术上讲,这对于真正的减法系统来说是正确的,但是,如果你想要更多稀释/减法系统,你可以试一试:
NewColor.R = 255 - SQRT(((255-Color1.R)^2 + (255-Color2.R)^2)/2)
NewColor.G = 255 - SQRT(((255-Color1.G)^2 + (255-Color2.G)^2)/2)
NewColor.B = 255 - SQRT(((255-Color1.B)^2 + (255-Color2.B)^2)/2)这会产生深灰色而不是黑色。但是要得到黄色或任何接近,你仍然必须修复配色方案的极对齐问题。
发布于 2009-08-29 13:33:39
有两种不同的组合颜色的可能性:
因此,在减色混合中,结果与你所期望的一样,但没有蓝色,而是青色:
黄+青=绿
一般说来,减色混色只是从白色中取走(过滤),而加色混合则是从黑色加起来的。(相减的基色与添加剂相反:红色->cyan;绿色>洋红色;蓝色>黄色)
因此,如果从白色屏幕开始应用过滤器:
分钟(白色(255,255),黄色(255,255,0),青色(0,255,255)) =绿色(0,255,0)
https://stackoverflow.com/questions/1351442
复制相似问题