Converta valores HSV para RGB
Escreva o matiz, a saturação e o valor, e os canais RGB aparecem enquanto escreve: hsv(217.2, 76%, 96.5%) corresponde a rgb(59, 130, 246). O campo aceita graus e percentagem do Photoshop ou do Figma, os três números que o OpenCV dá e frações do Python. Escolha a opção do seletor Notação HSV antes de colar, porque, se o campo já tiver uma cor, o seletor reescreve-a como a mesma cor na nova notação.
Introduza o matiz em graus e a saturação e o valor em percentagem. Separe os valores com vírgulas ou espaços.
O que significam os três números HSV?
O primeiro número é o matiz (H), que vai de 0 a 360 e percorre todas as cores do espetro, do vermelho ao violeta, mais o magenta. O segundo é a saturação (S), a que também se chama pureza: quanto mais baixa, mais acinzentada fica a cor. O terceiro é o valor (V), que define o brilho[1]. No Photoshop o mesmo modelo chama-se HSB, e a ajuda da Adobe chama às suas componentes matiz, saturação e brilho[2].
A saturação e o valor percebem-se melhor a pensar em tinta. Alvy Ray Smith, que publicou o modelo em 1978, comparou-os a juntar branco e preto a um matiz puro: menos saturação é mais branco, e menos valor é mais preto[3]. Por isso qualquer cor com valor de 0% é preta, digam o que disserem os outros dois números, e com saturação de 0% fica um cinzento desse valor.

Se tiver a cor noutra notação, como OKLCH, Lab ou código de Android, o conversor de cores mostra-a de uma vez em todas as notações.
Como se converte HSV para RGB?
Calcule primeiro a croma, ou seja, a distância entre os canais: C = V × S. Depois divida o matiz por 60°. A parte inteira do resultado escolhe um dos seis setores da roda, e o resto dá o canal intermédio: X = C × (1 − |(H ÷ 60°) mod 2 − 1|). Por fim, some m = V − C a todos os canais[4].
Tomemos hsv(217.2, 76%, 96.5%). A croma é 0,965 × 0,76 = 0,733. O matiz dividido por 60° dá 3,62, portanto a cor está no setor entre 180° e 240°, onde o vermelho é zero, o verde é o canal intermédio e o azul está cheio. O canal intermédio vale 0,733 × (1 − |1,62 − 1|) = 0,279, e m = 0,965 − 0,733 = 0,232.
Depois de somar m, os canais valem 0,232, 0,511 e 0,965. Multiplicados por 255 e arredondados dão rgb(59, 130, 246), que o conversor de RGB para HEX passa a código hexadecimal.
Que cores RGB há na roda das cores de 30 em 30°?
| Notação HSV | Valores RGB | Código 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%) é rgb(128, 0, 0).Os números inteiros do Figma dão exatamente a mesma cor?
| Notação HSV | Valores RGB | Código 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 |
Como se escreve uma cor HSV em CSS?
O CSS não tem a função hsv(), mas tem hwb(), em que o matiz é seguido da quantidade de branco e de preto misturada na cor[6]. O modelo HWB foi descrito por Alvy Ray Smith em 1996 e obtém-se do HSV com duas fórmulas curtas: W = (1 − S) × V e B = 1 − V[7].
Para hsv(217.2, 76%, 96.5%), o branco é (1 − 0,76) × 0,965 = 23,1% e o preto 1 − 0,965 = 3,5%, por isso na folha de estilos escreve hwb(217.2 23.1% 3.5%). O navegador mostra a mesma cor que rgb(59, 130, 246). Se preferir uma notação que qualquer ferramenta entenda, cole simplesmente o resultado deste conversor.
Porque é que um trio do OpenCV volta como uma cor um pouco diferente?
O OpenCV guarda o matiz de uma imagem de 8 bits como metade do ângulo, para caber num byte[8]. Valores de matiz vizinhos ficam assim a 2° de distância, e uma cor que caia entre eles não tem equivalente exato. O trio 109, 194, 246 que o OpenCV dá para rgb(59, 130, 246) volta com a opção OpenCV como rgb(59, 127, 246), com o verde três unidades abaixo. O próprio OpenCV devolve exatamente o mesmo: comparámos a opção OpenCV com o OpenCV.js 4.10 em todos os trios com matiz de 0 a 180.
Se o resultado voltar a uma imagem carregada com cv2.imread, use cv2.COLOR_HSV2BGR, porque essa imagem guarda os canais pela ordem azul, verde, vermelho[9].
Que formatos HSV aceita este conversor?
| O que escreve | O que o conversor mostra | Como o lemos |
|---|---|---|
| hsv(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Aceitamos tal como está a notação com parênteses, a mesma que o conversor de RGB para HSV dá. |
| hsb(217.2, 76%, 96.5%) | rgb(59, 130, 246) | Tratamos o nome HSB como HSV, porque é o mesmo modelo. |
| H 217,2 S 76 B 96,5 | rgb(59, 130, 246) | Retiramos as letras das caixas do Seletor de Cores do Photoshop e lemos a vírgula entre algarismos como decimal. |
| 217,2º 76% 96,5% | rgb(59, 130, 246) | Lemos como grau o ordinal º, que no teclado português está mais à mão do que o sinal de grau. |
| 0,6034 0,7602 0,9647 | rgb(59, 130, 246) | Reconhecemos três frações não maiores do que 1 como notação do Python e lemo-las como com a opção 0–1. |
| hsva(217.2, 76%, 96.5%, 0.5) | rgba(59, 130, 246, 0.5) | Tomamos o quarto número como opacidade e passamo-lo para o resultado em rgba. |
| [109 194 246] | rgb(59, 127, 246) | Lemos com a opção OpenCV um array do NumPy impresso pelo Python, com os parênteses retos. |
| -120, 100%, 100% | rgb(0, 0, 255) | Rodamos um matiz negativo na roda como faz o CSS, por isso −120° é o mesmo que 240°. |
| hsv(217.2, 76%, 96.5% | rgb(59, 130, 246) | A falta do parêntese de fecho é uma gralha, por isso lemos os números na mesma. |
Converter outras unidades para RGB
Fontes
- HSV — Wikipédia
- Escolher cores no Adobe Photoshop — Adobe
- Color Gamut Transform Pairs (SIGGRAPH 78) — Alvy Ray Smith
- HSL and HSV — HSV to RGB — Wikipedia (em inglês)
- 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
Todos os valores das tabelas foram calculados a partir das definições das unidades e verificados aritmeticamente antes da publicação. Os dados históricos e os nomes das unidades locais assentam nas fontes indicadas acima.
Última revisão do conteúdo: · escrito e verificado pela equipa Arteon
Perguntas frequentes sobre converter HSV para RGB
Porque é que o conversor não aceita uma saturação de 194?
Com a opção 0–360°, 0–100%, a saturação e o valor vão no máximo até 100. Um número maior sem sinal de percentagem vem normalmente da escala de 0 a 255 do OpenCV, por isso, em vez de o cortar em silêncio para 100%, o conversor mostra um aviso. Mude então a Notação HSV para OpenCV (0–179, 0–255).
Na notação 0–1, o matiz também é uma fração?
Sim. O módulo colorsys do Python dá os três números de 0 a 1[10], por isso o matiz é uma fração da volta completa. 0,6034 × 360° dá 217,2°.
Como passo de HSV para código HEX?
Converta aqui o valor e cole o resultado no conversor de RGB para HEX. A cor aparece logo na amostra quadrada ao lado do campo, e um clique nela abre o seletor de cor do sistema.
Como passo de RGB para HSV?
Introduza os canais no conversor de RGB para HSV. O botão Trocar ordem leva-o até lá com o resultado atual.

Ajude-nos a melhorar as nossas ferramentas
Tem uma ideia para uma nova função, encontrou um erro ou quer sugerir outra ferramenta? Escreva-nos.