Převeď hodnoty HSV na RGB
Zadej odstín, sytost a jas a kanály RGB se ukážou už při psaní: hsv(217.2, 76%, 96.5%) je rgb(59, 130, 246). Pole přijme stupně a procenta z Photoshopu nebo Figmy, tři čísla z OpenCV i zlomky z Pythonu. Volbu na přepínači Zápis HSV nastav ještě před vložením, protože když už v poli nějaká barva je, přepínač ji přepíše na tutéž barvu v novém zápisu.
Zadej odstín ve stupních a sytost a jas v procentech. Hodnoty odděl čárkami nebo mezerami.
Co znamenají tři čísla HSV?
První číslo je odstín (H), úhel na barevném kole: 0° je červená, 120° zelená a 240° modrá[1]. Druhé je sytost (S) a třetí jas (V). Photoshop tentýž model nazývá HSB a v dialogu pro výběr barvy zadáváš odstín ve stupních a sytost a jas v procentech[2]. Česká verze Photoshopu označuje pole odstínu, sytosti a jasu písmeny O, S a J[2]. Zápis O 217 S 76 J 96 pole HSV přečte stejně jako H 217 S 76 B 96, a to v jakémkoli pořadí písmen.
Sytost a jas nejlíp pochopíš přes malířské barvy. Alvy Ray Smith, který model popsal v roce 1978, je přirovnal k přidávání bílé a černé do čistého odstínu: nižší sytost znamená víc bílé a nižší jas víc černé[3]. Proto je každá barva s jasem 0 % černá, ať ostatní dvě čísla říkají cokoli, a se sytostí 0 % zbude šedá o daném jasu.

Pokud máš barvu v jiném zápisu, třeba v OKLCH, Lab nebo jako kód z Androidu, převodník barev ji ukáže najednou ve všech zápisech.
Jak převést HSV na RGB?
Nejdřív spočítej chromu, tedy rozpětí mezi kanály: C = V × S. Pak vyděl odstín 60°. Celá část výsledku určí jednu ze šesti výsečí kola a ze zbytku vyjde prostřední kanál: X = C × (1 − |(H ÷ 60°) mod 2 − 1|). Nakonec ke všem kanálům přičti m = V − C[1].
Vezměme hsv(217.2, 76%, 96.5%). Chroma je 0,965 × 0,76 = 0,733. Odstín vydělený 60° dá 3,62, takže barva leží ve výseči mezi 180° a 240°, kde je červená nulová, zelená prostřední a modrá plná. Prostřední kanál je 0,733 × (1 − |1,62 − 1|) = 0,279 a m = 0,965 − 0,733 = 0,232.
Po přičtení m mají kanály hodnoty 0,232, 0,511 a 0,965. Po vynásobení 255 a zaokrouhlení vyjde rgb(59, 130, 246) a převodník RGB na HEX z toho udělá šestnáctkový kód.
Jaké barvy RGB leží na barevném kole po 30°?
| Zápis HSV | Hodnoty RGB | Kód HEX |
|---|---|---|
| hsv(0, 100%, 100%) | rgb(255, 0, 0) | #FF0000 |
| hsv(30, 100%, 100%) | rgb(255, 128, 0) | #FF8000 |
| hsv(60, 100%, 100%) | rgb(255, 255, 0) | #FFFF00 |
| hsv(90, 100%, 100%) | rgb(128, 255, 0) | #80FF00 |
| hsv(120, 100%, 100%) | rgb(0, 255, 0) | #00FF00 |
| hsv(150, 100%, 100%) | rgb(0, 255, 128) | #00FF80 |
| hsv(180, 100%, 100%) | rgb(0, 255, 255) | #00FFFF |
| hsv(210, 100%, 100%) | rgb(0, 128, 255) | #0080FF |
| hsv(240, 100%, 100%) | rgb(0, 0, 255) | #0000FF |
| hsv(270, 100%, 100%) | rgb(128, 0, 255) | #8000FF |
| hsv(300, 100%, 100%) | rgb(255, 0, 255) | #FF00FF |
| hsv(330, 100%, 100%) | rgb(255, 0, 128) | #FF0080 |
hsv(0, 100%, 50%) je rgb(128, 0, 0).Dají celá čísla z Figmy přesně stejnou barvu?
| Zápis HSV | Hodnoty RGB | Kód HEX |
|---|---|---|
| hsv(217.2, 76%, 96.5%) | rgb(59, 130, 246) | #3B82F6 |
| hsv(217, 76%, 96%) | rgb(59, 130, 245) | #3B82F5 |
| hsv(217, 76%, 97%) | rgb(59, 131, 247) | #3B83F7 |
| hsv(142.1, 82.7%, 77.3%) | rgb(34, 197, 94) | #22C55E |
| hsv(142, 83%, 77%) | rgb(33, 196, 93) | #21C45D |
Jak zapsat barvu HSV v CSS?
CSS nemá funkci hsv(), ale má hwb(), ve které za odstínem následuje množství bílé a černé přimíchané do barvy[5]. Model HWB popsal Alvy Ray Smith v roce 1996 a z HSV se získá dvěma krátkými vzorci: W = (1 − S) × V a B = 1 − V[6].
Pro hsv(217.2, 76%, 96.5%) vychází bílá (1 − 0,76) × 0,965 = 23,1 % a černá 1 − 0,965 = 3,5 %, takže do stylopisu napíšeš hwb(217.2 23.1% 3.5%). Prohlížeč ukáže stejnou barvu jako rgb(59, 130, 246). Pokud chceš zápis, kterému rozumí každý nástroj, vlož prostě výsledek tohoto převodníku.
Proč se trojice z OpenCV vrátí jako trochu jiná barva?
OpenCV ukládá odstín 8bitového obrázku jako polovinu úhlu, aby se vešel do jednoho bajtu[7]. Sousední hodnoty odstínu jsou tedy od sebe 2° a barva, která padne mezi ně, nemá přesný protějšek. Trojice 109, 194, 246, kterou OpenCV dá pro rgb(59, 130, 246), se s volbou OpenCV vrátí jako rgb(59, 127, 246), tedy se zelenou nižší o tři jednotky. Samo OpenCV vrací přesně totéž: volbu OpenCV jsme porovnali s OpenCV.js 4.10 na všech trojicích s odstínem od 0 do 180.
Když má výsledek jít zpátky do obrázku načteného přes cv2.imread, použij cv2.COLOR_HSV2BGR, protože takový obrázek drží kanály v pořadí modrá, zelená, červená[8].
Jaké zápisy HSV tento převodník přijme?
| Co zadáš | Co převodník ukáže | Jak to čteme |
|---|---|---|
| hsv(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Zápis se závorkou, stejný jako výsledek převodníku RGB na HSV, bereme beze změny. |
| hsb(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Název HSB čteme jako HSV, protože jde o stejný model. |
| H 217,2 S 76 B 96,5 | rgb(59, 130, 246) | Písmena H, S a B před čísly vynecháme a čárku mezi číslicemi čteme jako desetinnou. |
| 217,2 76 % 96,5 % | rgb(59, 130, 246) | Mezeru před znakem procenta, jak se píše v češtině, přejdeme. |
| 0,6034 0,7602 0,9647 | rgb(59, 130, 246) | Tři zlomky nejvýš do 1 poznáme jako zápis z Pythonu a čteme je jako při volbě 0–1. |
| hsva(217.2, 76%, 96.5%, 0.5) | rgba(59, 130, 246, 0.5) | Čtvrté číslo bereme jako průhlednost a přeneseme ho do výsledku jako rgba. |
| [109 194 246] | rgb(59, 127, 246) | Pole NumPy vypsané Pythonem přečteme s volbou OpenCV i s hranatými závorkami. |
| -120, 100%, 100% | rgb(0, 0, 255) | Záporný odstín otočíme po kole stejně jako CSS, takže −120° je totéž co 240°. |
| hsv(217.2, 76%, 96.5% | rgb(59, 130, 246) | Chybějící uzavírací závorka je překlep, čísla proto přečteme i tak. |
Převést jiné jednotky na RGB
Zdroje
- HSL and HSV — Wikipedie (anglicky)
- Výběr barev v aplikaci Adobe Photoshop — Adobe
- Color Gamut Transform Pairs (SIGGRAPH 78) — Alvy Ray Smith
- About color models — Figma Help Center
- CSS Color Module Level 4 — HWB Colors: hwb() function — W3C
- HWB — A More Intuitive Hue-Based Color Model — Alvy Ray Smith
- Color conversions: RGB ↔ HSV — OpenCV
- Image file reading and writing: imread — OpenCV
- colorsys — Conversions between color systems — Python Software Foundation
Všechny hodnoty v tabulkách jsme spočítali z definic jednotek a před zveřejněním ověřili výpočtem. Historické údaje a názvy místních jednotek vycházejí ze zdrojů uvedených výše.
Poslední revize obsahu: · napsal a zkontroloval tým Arteon
Časté otázky k převodu HSV na RGB
Proč převodník nepřijme sytost 194?
Při volbě 0–360°, 0–100 % sahají sytost a jas nejvýš do 100. Větší číslo bez znaku procenta obvykle pochází ze škály 0 až 255 z OpenCV, a tak ho převodník místo tichého oříznutí na 100 % ohlásí zprávou. Přepni pak Zápis HSV na OpenCV (0–179, 0–255).
Je v zápisu 0–1 zlomkem i odstín?
Ano. Modul colorsys v Pythonu dává všechna tři čísla od 0 do 1[9], takže odstín je zlomek celé otáčky. 0,6034 × 360° dá 217,2°.
Jak převedu HSV na kód HEX?
Převeď hodnotu tady a výsledek vlož do převodníku RGB na HEX. Barvu hned uvidíš ve čtvercovém vzorku vedle pole a kliknutím na něj otevřeš systémový výběr barvy.
Jak převedu RGB na HSV?
Zadej kanály do převodníku RGB na HSV. Tlačítko Prohodit pořadí tě tam přenese i s aktuálním výsledkem.

Pomoz nám vylepšit naše nástroje
Máš nápad na novou funkci, vidíš chybu nebo chceš navrhnout jiný nástroj? Napiš nám.