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) • Манселла