HSV

Z testwiki
Skočit na navigaci Skočit na vyhledávání

Šablona:Neověřeno Šablona:Různé významy

Grafické zobrazení HSV

HSV (Hue, Saturation, Value), také známý jako HSB (Hue, Saturation, Brightness), je barevný model, který vytvořil v roce 1978 Alvy Ray Smith. Tento barevný model nejvíce odpovídá lidskému vnímání barev. Skládá se ze tří složek (nejsou to základní barvy), u nichž je nutno hlídat hodnoty (možné nesmyslné kombinace):

  • Hueodstín. Převládající barva odražená nebo procházející objektem. Měří se jako poloha na standardním barevném kole (0° až 360°). Obecně se odstín označuje názvem barvy.
  • Saturation – sytost barvy, příměs jiné barvy. Někdy též chroma, síla nebo čistota barvy, představuje množství šedi v poměru k odstínu, měří se v procentech od 0 % (šedá) do 100 % (plně sytá barva). Na barevném kole vzrůstá sytost od středu k okrajům. Např. červená s 50 % sytostí bude růžová.
  • Value – hodnota jasu, množství bílého světla. Relativní světlost nebo tmavost barvy. Jas vyjadřuje kolik světla barva odráží, dalo by se také říct přidávání černé do základní barvy.

HSL a HSV

HSL mapované do koule
(s vyříznutým rohem)

HSL a HSV (také nazývané HSB) jsou dvě příbuzné reprezentace bodů v barevném prostoru RGB, které se pokouší popisovat vnímání barevných vztahů přesněji než RGB, ale přesto zůstávají výpočtově jednoduché. HSL stojí na odstínu, sytosti a světlosti, zatímco HSV stojí na odstínu, sytosti a hodnotě.

HSL i HSV popisují barvy jako body ve válci, jehož centrální osa sahá od černé až dolů k bílé a nahoru k neutrální barvě mezi nimi, kde úhel kolem osy odpovídá „odstínu“, vzdálenost od osy odpovídá „saturaci“, a vzdálenost podél osy odpovídá „světlosti“, „hodnotě“ nebo „jasu“.

Tyto dvě reprezentace jsou podobné v účelu, ale liší se poněkud v přístupu. Oba jsou matematicky válcovité, ale zatímco HSV (odstín, saturace, hodnota) mohou být myšleny jako převrácený kužel barev (s černým bodem dole, a plně syté barvy kolem kruhu nahoře), HSL reprezentuje dvojitý kužel nebo koule (s bílou nahoře, černou dole, a syté barvy kolem okraje vodorovného typického vzorku s šedým středem). Odstín je u obou reprezentací stejný, zato sytost se výrazně liší.

Srovnání

HSL a HSV jsou si podobné. Výhodou HSL je to, že pojímá sytost a světlost jako dvě nezávislé veličiny, což je pro někoho intuitivnější. Na druhou stranu v HSL mohou mít téměř bílé barvy 100% sytost, což naopak příliš intuitivní není. Zda je pro uživatelská rozhraní vhodnější HSL či HSV je proto sporné.

Výhody HSL jsou v symetrii světlosti a tmy, to znamená:

  • Sytost jde vždy od plně syté barvy k ekvivalentu šedé (v HSV, to jde od plně syté barvy k bílé).
  • Světlost má vždy rozsah od černé přes zvolený odstín až k bílé (v HSV, jde poloviční cestou, od černé k volenému odstínu).

V softwaru je odstínem založený barevný model (HSV nebo HSL) obvykle představován uživateli ve formě lineárního nebo kruhového odstínového výběru a dvojrozměrné oblasti (obvykle čtverec nebo trojúhelník) kde si můžete vybrat saturaci a hodnotu světlosti pro vybraný odstín. S touto reprezentací je rozdíl mezi HSV a HSL vedlejší. Nicméně mnoho programů vás nechá si vybrat barvu přes lineární posouvátka nebo numerický vstup a pro ty je obvykle používán jeden z HSL nebo HSV (ne oba) modelů. HSV je tradičně více používán.

Využití

  • Aplikace využívající HSV i HSL:

Vizualizace

HSV kruh umožňuje rychle vybrat množství barev.

Model HSV je obvykle používán v grafických aplikacích, pro nastavení barvy. K tomu se používá HSV kruh. Je reprezentován vnější kruhovou oblastí a vnitřní trojúhelníkovou oblastí. Typicky svislá osa ukazuje nasycení, zatímco vodorovná osa hodnotu. Barva může být vybrána výběrem odstínu z kruhové oblasti a poté výběrem nasycení a hodnoty z trojúhelníkové oblasti.

Kuželová (konická) reprezentace HSV modelu je vhodná k zobrazení celého HSV barevného prostor
v jediném objektu.

Další způsob vizualizace HSV modelu je kužel. Zde je odstín zobrazen jako úhel od svislé osy. Sytost je reprezentována vzdáleností od svislé osy a hodnota je vzdálenost od špičatého konce kužele. Některé reprezentace používají šestiúhelníkový jehlan, místo kruhového kužele. Tato metoda je vhodná k zobrazení celého HSV barevného prostoru v jediném objektu, ale kvůli trojrozměrnému prostředí, není vhodná k výběru barvy ve dvojrozměrných počítačových rozhraních.

Význam

Umělci preferují barevné modely HSV a HSL před modely jako je RGB nebo CMYK, protože HSV a HSL více odpovídají lidskému vnímání barev a oddělují samostatně odstín.

Srovnání s jinými barevnými modely

HSV prostor (tristimulus) technicky nepodporuje osobní mapování k fyzickému zobrazovacímu zařízení (jen elektrickému spektru měřeném v radiometrii). Není obecně moudré pokoušet se dělat přímá srovnání mezi HSV osami a fyzikálními vlastnostmi jako je vlnová délka nebo amplituda.

Formální specifikace

Šablona:Více obrázků HSL a HSV jsou definovány matematicky transformováním souřadnic R, G, a B z barevného prostoru RGB.

Převod z RGB do HSL nebo HSV

ilustrace vztahu mezi „odstínem“ barev s maximální saturací v HSV a HSL s jejich odpovídáním RGB.

Složky r, g, b jsou červená, zelená a modrá složka barvy, jejichž hodnoty jsou reálná čísla mezi 0 a 1. Maximální hodnota se rovná největší z nich a minimální hodnota té nejmenší. Následně se spočítají hodnoty (h, s, l) v HSL prostoru, kde h ∈ [0, 360) je úhel odstínu ve stupních, a s, l ∈ [0,1] jsou sytost a světlost. Vypočítáme:

h={nedefinovan,jestlize max=min60×gbmaxmin+0,jestlize max=r a gb60×gbmaxmin+360,jestlize max=r a g<b60×brmaxmin+120,jestlize max=g60×rgmaxmin+240,jestlize max=b
l=12(max+min)
s={0,jestlize l=0 nebo max=minmaxminmax+min=maxmin2l,jestlize 0<l12maxmin2(max+min)=maxmin22l,jestlize l>12

Hodnota h je normalizována na interval 0 až 360°. Hodnota h = 0 je používána, když se maximální hodnota rovná minimální místo toho, aby se h stalo nedefinované. HSV má stejnou definici odstínu, ale ostatní součásti se liší. Hodnoty pro s a v pro HSV jsou barvy definovány takto:

s={0,if max=0maxminmax=1minmax,jinak
v=max

Převod z HSL do RGB

Daná barva vymezila hodnoty (h, s, l) v prostoru HSL, s h v dosahu [0, 360), ukazatel úhlu, v mírách odstínu, a s s a l v dosahu [0, 1], reprezentovat saturaci a světlost, příslušně odpovídající trojice (r, g, b) v prostoru RGB, s r, g, a b také v dosahu [0, 1], a odpovídající červené, zelené a modré příslušně, můžeme počítat takto:

Nejprve, jestliže s = 0, pak je výsledná barva bezbarvá nebo šedá. V tomto zvláštním případě se všechny složky r, g, a b rovnají l. Všimněte si, že tato hodnota je v této situaci nedefinovaná.

Když s ≠ 0, k postupu může být použito toto:

q={l×(1+s),if l<12l+s(l×s),if l12
p=2×lq
hk=h360 (h normalizováno v rozmezí [0,1))
tR=hk+13
tG=hk
tB=hk13
if tC<0tC=tC+1.0pro kazdeC{R,G,B}
if tC>1tC=tC1.0pro kazdeC{R,G,B}

Pro každý barevný vektor - barva = (barvaR, barvaG, barvaB) = (r, g, b),

BarvaC={p+((qp)×6×tC),if tC<16q,if 16tC<12p+((qp)×6×(23tC)),if 12tC<23p,jinak 
pro kazdoubarvu{R,G,B}

Převod z HSV do RGB

Podobně, daná barva vymezila hodnoty (h, s, v) v prostoru HSV, s h jak je uvedeno výše, a s s a v v rozmezí mezi 0 a 1, reprezentují saturaci a hodnotu. Odpovídající složky (r, g, b) v RGB prostoru mohou být počítány takto:

hi=h60mod6
f=h60hi
p=v×(1s)
q=v×(1f×s)
t=v×(1(1f)×s)

Pro každý barevný vektor (r, g, b):

(r,g,b)={(v,t,p),if hi=0(q,v,p),if hi=1(p,v,t),if hi=2(p,q,v),if hi=3(t,p,v),if hi=4(v,p,q),if hi=5

Terminologie

  • Světlost – znamená na vnímanou odraznost povrchu.
  • Jas – se používá ve významu poměrný jas, který je založený na fotometrické definici jasu, ale je normalizován s ohledem na odkaz bílé.
  • Světelnost – nesprávně se používá jako poměrný jas.

Příklad

RGB hodnoty jsou v rozsahu od 0.0 do 1.0.

RGB HSL HSV Výsledek
(1, 0, 0) (0°, 1, 0.5) (0°, 1, 1)  
(0.5, 1, 0.5) (120°, 1, 0.75) (120°, 0.5, 1)  
(0, 0, 0.5) (240°, 1, 0.25) (240°, 1, 0.5)  

Externí odkazy

Šablona:Barevné prostory Šablona:Autoritní data

simple:Color wheel#The 12 major colors of the color wheel