作者YoursEver (beyond the time!)
看板MATLAB
标题Re: [讨论] 颜色混合
时间Tue Sep 26 13:15:02 2017
※ 引述《jacklions (史东)》之铭言:
: 一般来说,混合纯RGB颜色是把RGB三项分开,个别相加。
: 那如果要混合三个不是纯RGB的颜色,
: 例如
: R G B
: A : 162 114 0
: B : 235 0 156
: AB 244 0 0
: 以上是在一篇paper看到的结果,混出来的AB是接近红色的,不知道有没有人有想法是如何完成的,希望有人可以帮我解惑,感谢大家^__^
: -----
: → jacklions: https://imgur.com/a/AIvh1 09/25 15:47
: → jacklions: 感觉是要求弧度的中点
: → jacklions: https://imgur.com/a/PxGdP 09/25 15:49
: → jacklions: 麻烦了~~~ 09/25 15:51
: ※ 编辑: jacklions (140.117.176.197), 09/25/2017 15:54:42
: → YoursEver: 我现在才看到,明天中午帮你翻. orz 09/26 01:04
你给的段落里面没有看见求弧中点的部分.
不过,那段文字的确只是告诉读者该怎麽定义pseudocolor的color map.
首先,基於HSV的特性,文章作者认为要在CIELAB color space上面定义颜色.
主要定义了8个锚点(anchor point)
(1) 三个channel全为0或全为FF: 黑/白.
(2) 三个channel中,仅单一channel不为0且为最大值.
(3) 三个channel中,单一channel为0,另两个为最大值.
(4) 上述第2,3项的颜色,定义在CIELAB space中 L = 50 的hyperplane上. (注1)
这个部分就只有提到这麽多事情,
其余的颜色是从这8个锚点内插出来的.
至於怎麽内插,这个段落内没说.
接下来解释(注1),
基本上,关於第4项的原文叙述显然和第2,3项冲突.
除非,作者所指的 "三个channel" 是指RGB,而非LAB.
也就是说,
那8个anchor point是定义在RGB space上,
只是color interpolation的计算是在LAB space上完成.
不过,这样的解释又和程式码内所定义的anchor point不合,
所以说,别理会作者说的,
你只要自己订好三对互补色,加上黑白,总共8个锚点,
接下来在LAB space上进行color interpolation就好.
例如:
黑, (L,A,B) = (0, 0, 0)
白, (L,A,B) = (100, 0, 0);
其他, (L,A,B) = (50, aa, bb);
(aa, bb)是六个等分点的位置.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.96.100.130
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1506402904.A.679.html
1F:推 jacklions: 非常感谢Y大,我会再研究看看! 09/26 22:47
2F:推 jacklions: 所以是用LAB去内插出等分点,大概了解了,非常感谢 09/27 18:02