HSV (цветовая модель) (версия Миг)

Icons-mini-icon 2main.png Основная статья: Цветовой круг (версия Миг)

HSV (англ. Hue, Saturation, Value — тон, насыщенность, значение) или HSB (англ. Hue, Saturation, Brightness — оттенок, насыщенность, яркость) — в которой координатами цвета являются характеристики цвета:

Шкала оттенков — Hue
Цветовая система Манселла, показан круг при значении 5, хроме 6, нейтральные значения от 0 до 10, сегмент круга (диапазон хромы) при тоне 5PB и значении 5.
  • Hue — цветовой тон, (например, красный, зелёный или сине-голубой). Варьируется в пределах 0—360°, однако иногда приводится к диапазону 0—100 или 0—1.
  • Saturation (chroma) — насыщенность. Варьируется в пределах 0—100 или 0—1. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. А чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому.
  • Value (значение цвета) или Brightness — яркость или светлота. Также задаётся в пределах 0—100 и 0—1.

Цилиндрическая модель была создана Элви Реем Смитом, одним из основателей Pixar, в 1978 году. Она является нелинейным преобразованием модели RGB (она менее точна). Конические модели (см.рис.1к) более точны и основаны на базе математической теории Гильбертовых пространств.

Цвет, представленный в HSV, зависит от устройства, на которое он будет выведен, так как HSV — преобразование модели RGB, которая тоже зависит от устройства. Для получения кода цвета, не зависящего от устройства, используется модель Lab.

Следует отметить, что HSV (HSB) и HSL — две разные цветовые модели.

Все цветовые модели и эти — HSV и HSL в виде конуса (см. рис.1к) независимы и созданы для практического выражения цветового пространства — это всего лишь удобное средство для представления цвета, и не имеет прямой зависимости от типа колбочек в глазу человека. С точки зрения математической конические модели более точные и основаны на базе теории Гильбертовых пространств.


Трёхмерные визуализации пространства HSVПравить

ЦилиндрПравить

 
Цилиндр

Простейший способ отобразить HSV в трёхмерное пространство — воспользоваться цилиндрической системой координат. Здесь координата H определяется полярным углом, S — радиус-вектором, а V — Z-координатой. То есть, оттенок изменяется при движении вдоль окружности цилиндра, насыщенность — вдоль радиуса, а яркость — вдоль высоты. Несмотря на «математическую» точность, у такой модели есть существенный недостаток: на практике количество различимых глазом уровней насыщенности и оттенков уменьшается при приближении яркости (V) к нулю (то есть, на оттенках, близких к чёрному). Также на малых S и V появляются существенные ошибки округления при переводе RGB в HSV и наоборот. Поэтому чаще применяется коническая модель.

КонусПравить

 
Рис.1к. Коническое представление модели

Другой способ визуализации цветового пространства — конус. Как и в цилиндре, оттенок изменяется по окружности конуса. Насыщенность цвета возрастает с отдалением от оси конуса, а яркость — с приближением к его основанию. Иногда вместо конуса используется шестиугольная правильная пирамида.

Оба этих способа являются удобной трёхмерной иллюстрацией пространства HSV. Но из-за трёхмерности они в прикладном ПО не применяются.

Визуализация HSV в прикладном ПОПравить

Модель HSV часто используется в программах компьютерной графики, так как удобна для человека. Ниже указаны способы «разворачивания» трёхмерного пространства HSV на двухмерный экран компьютера.

Цветовой кругПравить

 
Цветовой круг в прикладном ПО

Эта визуализация состоит из цветового круга (то есть, поперечного сечения цилиндра) и движка яркости (высоты цилиндра). Эта визуализация получила широкую известность по первым версиям ПО компании Corel. На данный момент применяется чрезвычайно редко, чаще используют кольцевую модель («а-ля Macromedia»)

Цветовое кольцоПравить

 
Цветовое кольцо с осями H, S и V
 
Поворачивающееся кольцо

Оттенок представляется в виде радужного кольца, а насыщенность и значение цвета выбираются при помощи вписанного в это кольцо треугольника. Его вертикальная ось, как правило, регулирует насыщенность, а горизонтальная позволяет изменять значение цвета. Таким образом, для выбора цвета нужно сначала указать оттенок, а потом выбрать нужный цвет из треугольника.

Изменение одного компонентаПравить

 
Три уровня яркости при увеличивающейся насыщенности
 
Три уровня насыщенности при увеличивающейся яркости

На этих двух диаграммах показываются цвета, различающиеся только одним компонентом.

Матрица соседних оттенковПравить

 
3×3×3

Различие близких цветов можно отобразить другим путём — показать рядом несколько цветов, ненамного отличающихся своими компонентами. На рисунке справа показано 27 близких оттенков оранжевого, отсортированных по яркости и располагающихся по спирали. Квадратики в центре показывают те же цвета, но отсортированные в более линейном порядке.

HSV и восприятие цветаПравить

 
Изображение и его отдельные компоненты — H, S, V. На разных участках изображения можно проследить изменения компонент

Часто художники предпочитают использовать HSV вместо других моделей, таких как RGB и CMYK, потому что они считают, что устройство HSV ближе к человеческому восприятию цветов. RGB и CMYK определяют цвет как комбинацию основных цветов (красного, зелёного и синего или жёлтого, розового, голубого и чёрного соответственно), в то время как компоненты цвета в HSV отображают информацию о цвете в более привычной человеку форме: Что это за цвет? Насколько он насыщенный? Насколько он светлый или тёмный? Цветовое пространство HSL представляет цвет похожим и даже, возможно, более интуитивно понятным образом, чем HSV.

Преобразования цветовых компонентов между моделямиПравить

RGB → HSVПравить

 
Иллюстрация, демонстрирующая отношение между RGB и HSV

Считаем, что: (1) H [ 0 , 360 ) (2) S , V , R , G , B [ 0 , 1 ] \begin{align} H & \in \left[ 0, 360 \right) \\ S,V,R,G,B & \in \left[ 0, 1 \right] \end{align}

Пусть M A X MAX  — максимальное значение из R R , G G и B B , а M I N MIN  — минимальное из них.

H = { H = \begin{cases} \\ \\ \\ \\ \\ \\ \\ \\ \end{cases} 0 , 0, если M A X = M I N MAX = MIN
60 × G B M A X M I N + 0 , 60 \times \frac{G - B}{MAX - MIN} + 0, если M A X = R   MAX = R~ и G B G \ge B
60 × G B M A X M I N + 360 , 60 \times \frac{G - B}{MAX - MIN} + 360, если M A X = R   MAX = R~ и G < B G < B
60 × B R M A X M I N + 120 , 60 \times \frac{B - R}{MAX - MIN} + 120, если M A X = G MAX = G
60 × R G M A X M I N + 240 , 60 \times \frac{R - G}{MAX - MIN} + 240, если M A X = B MAX = B
S = { S = \begin{cases} \\ \\ \end{cases} 0 , 0, если M A X = 0 , MAX = 0,
иначе 1 M I N M A X 1 - \frac {MIN} {MAX}

V = M A X V = MAX \,

HSV → RGBПравить

H i = H_i = H 60 mod 6 \left\lfloor { H \over 60 } \right\rfloor\mod 6
f = f = H 60 H 60 { H \over 60 } - \left\lfloor { H \over 60 } \right\rfloor
p = p = V ( 1 S ) V ( 1 - S ) \,
q = q = V ( 1 f S ) V ( 1 - f S ) \,
t = t = V ( 1 ( 1 f ) S ) V ( 1 - ( 1 - f ) S ) \,
если H i = 0 H_i = 0 \rightarrow R = V , R = V, G = t , G = t, B = p B = p
если H i = 1 H_i = 1 \rightarrow R = q , R = q, G = V , G = V, B = p B = p
если H i = 2 H_i = 2 \rightarrow R = p , R = p, G = V , G = V, B = t B = t
если H i = 3 H_i = 3 \rightarrow R = p , R = p, G = q , G = q, B = V B = V
если H i = 4 H_i = 4 \rightarrow R = t , R = t, G = p , G = p, B = V B = V
если H i = 5 H_i = 5 \rightarrow R = V , R = V, G = p , G = p, B = q B = q

В компьютерной графике компоненты S и V принято представлять целым числом от 0 до 255 (в окне выбора цветов в Microsoft Windows — от 0 до 240) вместо вещественного от 0 до 1. При целочисленном кодировании для каждого цвета в HSV есть соответствующий цвет в RGB. Однако обратное утверждение не является верным: некоторые цвета в RGB нельзя выразить в HSV так, чтобы значение каждого компонента было целым. Фактически, при таком кодировании доступна только 1 256 \frac{1}{256} часть цветового пространства RGB.

Комплементарные цветаПравить

  Основная статья: Комплементарные цвета

Два цвета называются комплементарными, если при смешивании их в равной пропорции получается чистый серый цвет. Если задан один цвет ( H H , S S , V V ), то обязательно существует комплементарный ему цвет ( H H' , S S' , V V' ). Поскольку результирующий цвет должен быть серым, его насыщенность (S) должна быть равна 0. Таким образом,

H = H^\prime = { H 180 , if  H 180 H + 180 , if  H < 180 \begin{cases}H - 180, & \mbox{if } H \ge 180 \\H + 180, & \mbox{if } H < 180 \end{cases}
S = S^\prime = V S V ( S 1 ) + 1 {VS \over V(S - 1) + 1}
V = V^\prime = V ( S 1 ) + 1 V(S - 1) + 1

См. такжеПравить

Образцы цветовых моделейПравить

При помощи подвода «мыши» к образчикам таблицы цветов и в случае действующих ниже образчиков, можно видеть значения R, Г и B, которые заложены в каждом из них в «tooltip». [1]

HSVПравить

  • Таблицы цветов HSV:
H = 180°
(Cyan)
H = 0°
(Red)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  
H = 210°
(Blue-Cyan)
H = 30°
(Yellow-Red)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  
H = 240°
(Blue)
H = 60°
(Yellow)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  
H = 270°
(Magenta-Blue)
H = 90°
(Green-Yellow)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  
H = 300°
(Magenta)
H = 120°
(Green)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  
H = 330°
(Red-Magenta)
H = 150°
(Cyan-Green)
V \ S 1 ¾ ½ ¼ 0 ¼ ½ ¾ 1
1                  
                 
¾                  
                 
½                  
                 
¼                  
                 
0                  

ПримечанияПравить