HSV

З пляцоўкі Вікіпедыя
Перайсці да: рух, знайсці

HSV (англ.: Hue, Saturation, Value — тон, насычанасць, значэнне) або HSB (англ.: Hue, Saturation, Brightness — адценне, насычанасць, яркасць) — каляровая мадэль, у якой каардынатамі колера з'яўляюцца:

Шкала адценняў — Hue
  • Hue — колерны тон, (напрыклад, чырвоны, зялёны ці сіне-блакітны). Вар'іруецца ў межах 0—360°, аднак часам прыводзіцца да дыяпазону 0—100 або 0—1.
  • Saturation — насычанасць. Вар'іруецца ў межах 0—100 ці 0—1. Чым больш гэты параметр, тым «чысцей» колер, таму гэты параметр часам завуць чысцінёй колеру. А чым бліжэй гэты параметр да нуля, тым бліжэй колер да нейтральнага шэрага.
  • Value (значэнне колеру) ці Brightness — яркасць. Таксама задаецца ў межах 0—100 і 0—1.

Мадэль была створана Элві Рэем Смітам, адным з заснавальнікаў Pixar, у 1978 годзе. Яна з'яўляецца нелінейным пераўтварэннем мадэлі RGB.

Колер, прадстаўлены ў HSV, залежыць ад прылады, на якую ён будзе выведзены, бо HSV — пераўтварэнне мадэлі RGB, якая таксама залежыць ад прылады. Для атрымання кода колеру, які не залежыць ад прылады, выкарыстоўваецца мадэль Lab.

Варта адзначыць, што HSV (HSB) і HSL — дзве розныя колерныя мадэлі.

Трохмерныя візуалізацыі прасторы HSV[правіць | правіць зыходнік]

Цыліндр[правіць | правіць зыходнік]

Цыліндр
HSV cyclinder.gif

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

Конус[правіць | правіць зыходнік]

Канічнае ўяўленне мадэлі
HSV cone.gif

Іншы спосаб візуалізацыі каляровай прасторы — конус. Як і ў цыліндры, адценне змяняецца па акружнасці конусу. Насычанасць колеру ўзрастае з аддаленнем ад восі конусу, а яркасць — з набліжэннем да яго падножжа. Часам замест конусу выкарыстоўваецца шасцікутная правільная піраміда.

Абодва гэтых спосабу з'яўляюцца зручнай трохмернай ілюстрацыяй прасторы HSV. Але з-за трохвымернасці яны ў прыкладным ПА не ўжываюцца.

Візуалізацыя HSV у прыкладным ПА[правіць | правіць зыходнік]

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

Колерны круг[правіць | правіць зыходнік]

Гэта візуалізацыя складаецца з колернага кругу (гэта значыць, папярэчнага сячэння цыліндру) і рухавічка яркасці (вышыні цыліндру). Гэта візуалізацыя атрымала шырокую вядомасць па першых версіях ПА кампаніі Corel. На гэты момант ужываецца надзвычай рэдка, часцей выкарыстоўваюць кальцавую мадэль («а-ля Macromedia»)

Колернае кальцо[правіць | правіць зыходнік]

Колернае кальцо з восямі H, S і V
Кальцо з паваротам

Адценне падаецца ў выглядзе вясёлкавага кальца, а насычанасць і значэнне колеру выбіраюцца з дапамогай ўпісанага ў гэта кальцо трохвугольніку. Яго вертыкальная вось, як правіла, рэгулюе насычанасць, а гарызантальная дазваляе змяняць значэнне колеру. Такім чынам, для выбару колеру трэба спачатку паказаць адценне, а потым абраць патрэбны колер з трохвугольніка.

Змена аднаго кампанента[правіць | правіць зыходнік]

Тры ўзроўні яркасці пры якіх павялічваецца насычанасць
Тры ўзроўні насычанасці пры якіх павялічваецца яркасць

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


Пераўтварэнне колерных кампанентаў паміж мадэоямі[правіць | правіць зыходнік]

RGB → HSV[правіць | правіць зыходнік]

Ілюстрацыя, якая дэманструе адносіны паміж RGB і HSV

Лічым, што:


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

Няхай MAX — максімальнае значэнне з R, G і B, а MIN — мінімальнае з іх.

H = 
\begin{cases}
\\
\\
\\
\\
\\
\\
\\
\\
\end{cases}  0, калі MAX = MIN
60 \times \frac{G - B}{MAX - MIN} + 0, калі MAX = R~ і G \ge B
60 \times \frac{G - B}{MAX - MIN} + 360, калі MAX = R~ і G < B
60 \times \frac{B - R}{MAX - MIN} + 120, калі MAX = G
60 \times \frac{R - G}{MAX - MIN} + 240, калі MAX = B
S = 
\begin{cases}
\\
\\
\end{cases}
0, калі MAX = 0,
иначе 1 - \frac {MIN} {MAX}

V = MAX \,

HSV → RGB[правіць | правіць зыходнік]

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

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

Дадатковыя колеры[правіць | правіць зыходнік]

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

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

Гл. таксама[правіць | правіць зыходнік]