Question

In RGB model, each pixel is defined by 3 bytes, for R,G and B respectively. This gives a total of 224 colors, including 256 tones of grey.

It is very common to represent HSV/HSB/HSL models with floats (not bytes). Most descriptions describe hue as the "angle" in a cone, so it's sensible to treat it as a real number.

But how does this relate to the down-to-earth limit of 224 total colors..? How many distinct hues are available? More over, it seems to me that the number should depend on other parameters - saturation for instance..


Interesting reading: http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html

Was it helpful?

Solution

In HSV, the hue is defined as

H = atan2( sqrt(3)*(G-B), 2R-G-B )

(link). In each of the six sectors (R-Y, Y-G ...), there are equally many hues. Additionally, there are six hues at the boundary between the regions. So, 6 + 6 * huesRY.

In the red-yellow sector, R > G > B, so both arguments to atan2 are positive.

 count sqrt(3) * (G-B) / (2R-G-B)
=count (G-B) / (2R-G-B)
=count (G-B) / ((G-B) + (2R-2G))

since we can apply any linear transformation to the sets of [x,y] and not change the count of its ratios, x / (x+2y) == x / y

=count (G-B) / (R-G)

if we subtract the same value from all R,G,B, the ratio does not change, so assume B=0

=count G / (R-G)
=count G / R

so, there are six times as many hues as there are ratios between two positive integers that are both below 2^8 (assuming 8 bits per channel), and six more. There are as many ratios as there are pairs of coprime positive integers. The number of positive integers below n that are coprime with n is called the Euler's totient function. OEIS lists its partial sums. There are exactly 19948 pairs of coprime positive integers below 256.

6 * 19948 + 6 = 119 694

There are exactly 119 694 different hues in the HSV model that correspond to a color in the 8-bit RGB model. Note that they are not spaced evenly.

If 8 bits per channel are used in the HSV model, then there are less colors than in the RGB model with 8 bits per channel simply because some HSV triples map to the same color while every RGB triple defines a different color.

OTHER TIPS

IN RGB color the hues can be calculated from (2^3*depth-2^depth/Luminance)/3= so 15 bit color has 341 distinct hues

24bit color has 21845 Distinct Hues

if there were 119000 hues the remaing colors All hues-Red hues of the red hue would be 256,X,Y around 2^16 which means there are less green and blue hues than red?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top