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 — радыус-вектарам, а VZ-каардынатай. Гэта значыць, адценне змяняецца пры руху ўздоўж акружнасці цыліндру, насычанасць — уздоўж радыусу, а яркасць — уздоўж вышыні. Нягледзячы на «матэматычную» дакладнасць, у такой мадэлі ёсць істотны недахоп: на практыку колькасць распазнавальных вокаам узроўняў насычанасці і адценняў памяншаецца пры набліжэнні яркасці (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

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