HSV

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

Шкала відтінків — Hue
  • Hue — колірний тон, (наприклад, червоний, зелений або синьо-блакитний). Варіюється в межах 0-360°, але іноді приводиться до діапазону 0-100 або 0-1. У Windows весь колірний спектр ділиться на 240 відтінків (що можна спостерігати в редакторі палітри MS Paint), тобто тут «Hue» зводиться до діапазону 0-239 (відтінок 240 відсутній, оскільки він дублював би 0).
  • Saturation — насиченість. Варіюється в межах 0-100 або 0-1. Чим більший цей параметр, тим «чистіший» колір, тому цей параметр іноді називають чистотою кольору. А чим ближчий цей параметр до нуля, тим ближчий колір до нейтрального сірого.
  • Value — значення кольору, або Brightness — яскравість. Також задається в межах 0-100 або 0-1.

Модель була створена Елві Реєм Смітом, одним із засновників Pixar, в 1978 році. Вона є нелінійним перетворенням моделі RGB.

Колір, представлений в HSV, залежить від пристрою, на який він буде виведений, оскільки HSV — перетворення моделі RGB, яка теж залежить від пристрою. Для отримання коду кольору, не залежного від пристрою, використовується модель Lab.

Слід зазначити, що HSV (HSB) і HSL — дві різні колірні моделі.

Тривимірні візуалізації простору HSV

Циліндр

Циліндр

Найпростіший спосіб зобразити HSV в тривимірний простір — скористатися циліндричною системою координат. Тут координата H визначається полярним кутом, S — радіус-вектором, а V — Z-координатою. Тобто, відтінок змінюється при русі вздовж кола циліндра, насиченість — вздовж радіуса, а яскравість — вздовж висоти. Всупереч математичній точності, у такої моделі є істотний недолік: на практиці кількість помітних оком рівнів насиченості і відтінків зменшується при наближенні яскравості (V) до нуля (тобто, на відтінках, близьких до чорного). Також на малих S і V з'являються суттєві помилки округлення при перекладі RGB в HSV і навпаки. Тому частіше застосовується конічна модель.

Конус

Конічне представлення моделі

Інший спосіб візуалізації колірного простору — конус. Як і в циліндрі, відтінок змінюється по колу конуса. Насиченість кольору зростає з віддаленням від осі конуса, а яскравість — з наближенням до його основи. Іноді замість конуса використовують правильну шестикутну піраміду.

Обидва ці способи є зручною тривимірною ілюстрацією простору 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

Вважаємо, що:

H [ 0 , 360 ) S , V , R , G , B [ 0 , 1 ] {\displaystyle {\begin{aligned}H&\in \left[0,360\right)\\S,V,R,G,B&\in \left[0,1\right]\end{aligned}}}

Нехай M A X {\displaystyle MAX}  — максимальне значення з R {\displaystyle R} , G {\displaystyle G} і B {\displaystyle B} , а M I N {\displaystyle MIN}  — мінімальне з них.

H = { {\displaystyle H={\begin{cases}\\\end{cases}}} 0 , {\displaystyle 0,} якщо M A X = M I N {\displaystyle MAX=MIN}
60 × G B M A X M I N + 0 , {\displaystyle 60\times {\frac {G-B}{MAX-MIN}}+0,} якщо M A X = R   {\displaystyle MAX=R~} і G B {\displaystyle G\geq B}
60 × G B M A X M I N + 360 , {\displaystyle 60\times {\frac {G-B}{MAX-MIN}}+360,} якщо M A X = R   {\displaystyle MAX=R~} і G < B   {\displaystyle G<B~}
60 × B R M A X M I N + 120 , {\displaystyle 60\times {\frac {B-R}{MAX-MIN}}+120,} якщо M A X = G   {\displaystyle MAX=G~}
60 × R G M A X M I N + 240 , {\displaystyle 60\times {\frac {R-G}{MAX-MIN}}+240,} якщо M A X = B   {\displaystyle MAX=B~}

S = { 0 , if  M A X = 0 ; 1 M I N M A X , otherwise {\displaystyle S={\begin{cases}0,&{\text{if }}MAX=0;\\1-{\dfrac {MIN}{MAX}},&{\text{otherwise}}\end{cases}}}

V = M A X {\displaystyle V=MAX\,}

HSV → RGB

Для будь-яких відтінків H ∈ [0°,360°), насиченості S ∈ [0, 100], і яскравості V ∈[0, 100]:

H i = H 60 {\displaystyle H_{i}=\left\lfloor {H \over 60}\right\rfloor }
V m i n = ( 100 S ) V 100 {\displaystyle V_{min}={{(100-S)*V} \over 100}}
a = ( V V m i n ) H mod 60 60 {\displaystyle a={(V-V_{min})}*{{H\mod 60} \over 60}}
V i n c = V m i n + a {\displaystyle V_{inc}=V_{min}+a}
V d e c = V a {\displaystyle V_{dec}=V-a}
  • якщо H i = 0 {\displaystyle H_{i}=0} , то R = V , G = V i n c , B = V m i n {\displaystyle R=V,G=V_{inc},B=V_{min}}
  • якщо H i = 1 {\displaystyle H_{i}=1} , то R = V d e c , G = V , B = V m i n {\displaystyle R=V_{dec},G=V,B=V_{min}}
  • якщо H i = 2 {\displaystyle H_{i}=2} , то R = V m i n , G = V , B = V i n c {\displaystyle R=V_{min},G=V,B=V_{inc}}
  • якщо H i = 3 {\displaystyle H_{i}=3} , то R = V m i n , G = V d e c , B = V {\displaystyle R=V_{min},G=V_{dec},B=V}
  • якщо H i = 4 {\displaystyle H_{i}=4} , то R = V i n c , G = V m i n , B = V {\displaystyle R=V_{inc},G=V_{min},B=V}
  • якщо H i = 5 {\displaystyle H_{i}=5} , то R = V , G = V m i n , B = V d e c {\displaystyle R=V,G=V_{min},B=V_{dec}}

Отримані значення червоного, зеленого і синього каналів RGB обчислюються у відсотках. Щоб зробити їх відповідними поширеному уявленню COLORREF необхідно помножити кожне з них на 2,55.

При цілочисельному кодуванні кожного кольору в HSV є відповідний колір в RGB. Однак зворотне твердження не є вірним: деякі кольору в RGB не можна виразити в HSV так, щоб значення кожного компонента було цілим. Фактично, при такому кодуванні доступна тільки 1 256 {\displaystyle {\frac {1}{256}}} частина колірного простору RGB.

Додаткові кольори

Два кольори називаються додатковими, якщо при змішуванні їх в рівній пропорції виходить чистий сірий колір. Якщо заданий один колір ( H {\displaystyle H} , S {\displaystyle S} , V {\displaystyle V} ), то обов'язково існує додатковий йому колір ( H {\displaystyle H'} , S {\displaystyle S'} , V {\displaystyle V'} ). Оскільки вислідний колір повинен бути сірим, його насиченість (S) повинна дорівнювати 0. Таким чином,

H = {\displaystyle H^{\prime }=} { H 180 , if  H 180 H + 180 , if  H < 180 {\displaystyle {\begin{cases}H-180,&{\mbox{if }}H\geq 180\\H+180,&{\mbox{if }}H<180\end{cases}}}
S = {\displaystyle S^{\prime }=} V S V ( S 1 ) + 1 {\displaystyle {VS \over V(S-1)+1}}
V = {\displaystyle V^{\prime }=} V ( S 1 ) + 1 {\displaystyle V(S-1)+1}
Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (травень 2014)

RGB (sRGB, ProPhoto) • CMYK XYZ • LMS • HSV (HSB) • HSL AHSL • RYB • LAB NCS • RAL • YUV YCbCr • YPbPr • YDbDr • YIQ • PMS (Pantone) • Манселла