在RGB模型中,每个像素由3个字节定义,分别用于R,G和B.这总共提供了2个 24 颜色,包括256个灰色的色调。
用float
s(非byte
s)表示HSV / HSB / HSL模型是很常见的。大多数描述将色调描述为锥形中的“角度”,因此将其视为实数是明智的。
但这与2 24 总颜色的实际限制有何关系?有多少种不同的色调?更重要的是,在我看来,这个数字应该取决于其他参数 - 例如饱和度。
<小时/> 有趣的阅读:http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html
答案 0 :(得分:8)
在HSV中,色调定义为
H = atan2( sqrt(3)*(G-B), 2R-G-B )
(link)。在六个扇区(R-Y,Y-G ......)的每个扇区中,都有相同的色调。此外,区域之间的边界有六种色调。所以,6 + 6 * huesRY
。
在红黄色区域中,R> G> B,因此atan2的两个论点都是正面的。
count sqrt(3) * (G-B) / (2R-G-B)
=count (G-B) / (2R-G-B)
=count (G-B) / ((G-B) + (2R-2G))
因为我们可以对[x,y]的集合应用任何线性变换而不改变其比率的计数,x / (x+2y) == x / y
=count (G-B) / (R-G)
如果我们从所有R,G,B中减去相同的值,则该比率不会改变,因此假设B = 0
=count G / (R-G)
=count G / R
因此,色数的六倍是两个正整数之间的比率低于2 ^ 8(假设每个通道为8位),还有六个。存在与成对的互质正整数一样多的比率。低于n
的与n
相互作用的正整数的数量称为Euler的totient函数。 OEIS lists its partial sums。在256以下,确实有19948对互质正整数。
6 * 19948 + 6 = 119 694
HSV模型中正好有119 694种不同的色调,与8位RGB模型中的颜色相对应。请注意,它们的间距不均匀。
如果HSV模型中每个通道使用8位,那么颜色少于RGB模型中每个通道8位的颜色,因为一些HSV三元组映射到相同的颜色,而每个RGB三元组定义不同的颜色。 / p>
答案 1 :(得分:0)
在RGB颜色中,色调可以从(2 ^ 3 *深度-2 ^深度/亮度)/ 3 =计算得出,因此15位颜色具有341种不同的色调
24位色有21845种不同的色调
如果有119000色调的剩余颜色所有色调 - 红色调的红色色调将是256,X,Y大约2 ^ 16,这意味着绿色和蓝色色调比红色少?