В модели RGB сколько различных оттенков доступно?

В модели RGB каждый пиксель определяется 3 байтами для R, G и B соответственно. Это дает в целом 2 цвета 24 включая 256 тонов серого.

Очень часто представляются модели HSV/HSB/HSL с float (не byte s). Большинство описаний описывают оттенок как "угол" в конусе, поэтому разумно рассматривать его как действительное число.

Но как это соотносится с нижним пределом 2 24 общих цветов..? Сколько различных оттенков доступно? Более того, мне кажется, что число должно зависеть от других параметров - например, насыщения.

<ч/" > Интересное чтение: http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html

Ответ 1

В HSV оттенок определяется как

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

(ссылка). В каждом из шести секторов (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, называется функцией толеатора Эйлера. OEIS списки частичные суммы. Существует ровно 19948 пар взаимно простых целых чисел ниже 256.

6 * 19948 + 6 = 119 694

В модели HSV имеется ровно 119 694 разных оттенка, соответствующих цвету в 8-битной модели RGB. Обратите внимание, что они не равномерно распределены.

Если в модели HSV используется 8 бит на канал, тогда меньше цветов, чем в модели RGB с 8 бит на канал, просто потому, что некоторые тройки HSV отображаются на один и тот же цвет, в то время как каждая тройка RGB определяет другой цвет.

Ответ 2

В цвете RGB оттенки могут быть рассчитаны из (2 ^ 3 * глубина-2 ^ глубина/яркость)/3 = так, что 15-битный цвет имеет 341 четкий оттенок

24-битный цвет имеет 21845 отличительных оттенков

если бы было 119 000 оттенков повторяющихся цветов. Все оттенки-красные оттенки красного оттенка были бы 256, X, Y около 2 ^ 16, что означает, что есть менее зеленые и синие оттенки, чем красный?