HSV では、色相は次のように定義されます。
H = atan2( sqrt(3)*(G-B), 2R-G-B )
(リンク)。6 つのセクター (RY、YG ...) のそれぞれに、均等に多くの色相があります。さらに、領域間の境界には 6 つの色相があります。だから、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 未満である 2 つの正の整数の間の比率の 6 倍の色相があり (チャネルあたり 8 ビットと仮定)、さらに 6 つの色相があります。互いに素な正の整数のペアと同じ数の比率があります。n
互いに素である以下の正の整数の数はn
、オイラーの totient 関数と呼ばれます。OEISは その部分和をリスト します。256 未満の互いに素な正の整数のペアは、ちょうど 19948 個あります。
6 * 19948 + 6 = 119 694
HSV モデルには、8 ビット RGB モデルの色に対応する正確に 119,694 の異なる色相があります。等間隔ではないことに注意してください。
HSV モデルでチャネルあたり 8 ビットが使用されている場合、チャネルあたり 8 ビットの RGB モデルよりも色が少なくなります。これは、一部の HSV トリプルが同じ色にマッピングされ、すべての RGB トリプルが異なる色を定義するためです。