
HSL e HSV são as duas representações em coordenadas cilíndricas mais comuns de pontos em um modelo de cores RGB. As duas representações reorganizam a geometria do RGB na tentativa de serem mais intuitivas e mais relevantes do ponto de vista da percepção de cores do que a representação cartesiana (cúbica). Desenvolvidos na década de 1970 para aplicações de computação gráfica, HSL e HSV são usados atualmente em seletores de cores, programas de edição de imagem e, com menor frequência, em análise de imagem e visão computacional.
HSL é a sigla de hue, saturation e lightness (matiz, saturação e luminosidade) e também é frequentemente denominado HLS. HSV é a sigla de hue, saturation e value (matiz, saturação e valor) e também é frequentemente denominado HSB (B de brightness, «brilhância»). Um terceiro modelo, comum em aplicações de visão computacional, é o HSI, de hue, saturation e intensity (matiz, saturação e intensidade). No entanto, embora em geral sejam coerentes, essas definições não são padronizadas, e qualquer uma dessas abreviações pode ser usada para qualquer um desses três modelos ou para vários outros modelos cilíndricos relacionados. (Para as definições técnicas desses termos, ver abaixo.)
Em cada cilindro, o ângulo em torno do eixo vertical central corresponde ao «matiz», a distância ao eixo corresponde à «saturação» e a distância ao longo do eixo corresponde à «luminosidade», ao «valor» ou à «brilhância». Observe que, embora «matiz» em HSL e HSV se refira ao mesmo atributo, suas definições de «saturação» diferem drasticamente. Como HSL e HSV são transformações simples de modelos RGB dependentes do dispositivo, as cores físicas por eles definidas dependem das cores das primárias vermelha, verde e azul do dispositivo ou do espaço RGB específico, bem como da correção gama usada para representar as quantidades dessas primárias. Assim, cada dispositivo RGB específico possui espaços HSL e HSV específicos correspondentes, e valores numéricos HSL ou HSV descrevem uma cor diferente para cada espaço RGB de base.
Ambas as representações são amplamente usadas em computação gráfica, e uma delas costuma ser mais conveniente do que o RGB; contudo, ambas também são criticadas por não separarem adequadamente os atributos de formação da cor ou por não apresentarem uniformidade perceptual. Afirma-se que outros modelos de maior custo computacional, como CIELAB ou CIECAM02, atingem melhor esses objetivos.
HSL e HSV são, ambos, geometrias cilíndricas (fig. 2), nas quais o matiz, sua dimensão angular, começa na primária vermelha a 0°, passa pela primária verde a 120° e pela primária azul a 240° e, então, retorna ao vermelho a 360°. Em cada geometria, o eixo vertical central compreende as cores neutras, acromáticas ou cinzentas, variando, de cima para baixo, do branco com luminosidade 1 (valor 1) ao preto com luminosidade 0 (valor 0).
Em ambas as geometrias, as cores primárias aditivas e as cores secundárias — vermelho, amarelo, verde, ciano, azul e magenta —, bem como as misturas lineares entre pares adjacentes dessas cores, às vezes chamadas de cores puras, são dispostas ao redor da borda externa do cilindro com saturação 1. Essas cores saturadas têm luminosidade 0,5 no HSL, enquanto no HSV têm valor 1. Misturar essas cores puras com preto — produzindo as chamadas cores escurecidas (shades) — mantém a saturação inalterada. No HSL, a saturação também permanece inalterada ao se adicionar branco, e apenas misturas com preto e branco — chamadas tons — apresentam saturação inferior a 1. No HSV, a adição apenas de branco reduz a saturação.
Como essas definições de saturação — nas quais cores quase neutras muito escuras (em ambos os modelos) ou muito claras (no HSL) são consideradas totalmente saturadas (por exemplo, na parte inferior direita do cilindro HSL fatiado ou na parte superior direita) — entram em conflito com a noção intuitiva de pureza da cor, muitas vezes se desenha, em seu lugar, um sólido cônico ou bicônico (fig. 3), tendo aquilo que este artigo denomina croma como dimensão radial (igual à amplitude dos valores RGB), em vez da saturação (na qual a saturação é igual ao croma dividido pelo croma máximo daquela fatia do (bi)cone). De maneira confusa, esses diagramas normalmente rotulam essa dimensão radial como «saturação», obscurecendo ou eliminando a distinção entre saturação e croma. Como descrito abaixo, calcular o croma é uma etapa útil na derivação de cada modelo. Como um modelo intermediário desse tipo — com as dimensões matiz, croma e valor HSV ou luminosidade HSL — assume a forma de um cone ou bicone, o HSV é frequentemente denominado «modelo hexcone», enquanto o HSL é frequentemente denominado «modelo bi-hexcone» (fig. 8).
A maioria dos televisores, monitores de computador e projetores produz cores combinando luz vermelha, verde e azul em diferentes intensidades — as chamadas primárias RGB aditivas. As misturas resultantes no espaço de cores RGB podem reproduzir uma ampla variedade de cores (denominada gama); contudo, a relação entre as quantidades constituintes de luz vermelha, verde e azul e a cor resultante é pouco intuitiva, especialmente para usuários inexperientes e para usuários familiarizados com a síntese subtrativa de tintas ou com modelos tradicionais de artistas baseados em cores clareadas e escurecidas (fig. 4). Além disso, nem os modelos aditivos nem os subtrativos definem relações entre cores da mesma maneira que o olho humano.
Por exemplo, imagine um monitor RGB cuja cor seja controlada por três controles deslizantes variando de 0–255, um para controlar a intensidade de cada uma das primárias vermelha, verde e azul. Se começarmos com um laranja relativamente colorido , com valores sRGB R = 217, G = 118, B = 33, e quisermos reduzir seu colorido pela metade para obter um laranja menos saturado , seria necessário mover os controles para diminuir R em 31, aumentar G em 14 e aumentar B em 59, como ilustrado abaixo.
![]()
A partir da década de 1950, transmissões de televisão em cores empregaram um sistema de cores compatíveis no qual os sinais de «luminância» e «crominância» eram codificados separadamente, permitindo que televisores em preto e branco existentes e não modificados continuassem a receber transmissões em cores e exibissem uma imagem monocromática.
Em uma tentativa de acomodar modelos de mistura de cores mais tradicionais e intuitivos, pioneiros da computação gráfica no PARC e no NYIT introduziram o modelo HSV para tecnologia de monitores de computador em meados da década de 1970, descrito formalmente por Alvy Ray Smith na edição de agosto de 1978 de Computer Graphics. Na mesma edição, Joblove e Greenberg descreveram o modelo HSL — cujas dimensões chamaram de hue («matiz»), relative chroma («croma relativo») e intensity («intensidade») — e o compararam ao HSV (fig. 1). Seu modelo se baseava mais na forma como as cores são organizadas e conceituadas na visão humana em termos de outros atributos de formação da cor, como matiz, luminosidade e croma, bem como em métodos tradicionais de mistura de cores — por exemplo, na pintura — que envolvem misturar pigmentos de cores vivas com preto ou branco para obter cores mais claras, mais escuras ou menos coloridas.
No ano seguinte, 1979, durante a SIGGRAPH, a Tektronix apresentou terminais gráficos que usavam HSL para especificar cores, e o Computer Graphics Standards Committee recomendou seu uso em seu relatório anual de situação (fig. 7). Esses modelos eram úteis não apenas porque eram mais intuitivos do que valores RGB brutos, mas também porque as conversões de e para RGB eram extremamente rápidas de calcular: podiam ser executadas em tempo real no hardware da década de 1970. Consequentemente, esses modelos e outros semelhantes se tornaram onipresentes em programas de edição de imagens e software gráfico desde então. Alguns de seus usos são descritos abaixo.

As dimensões das geometrias HSL e HSV — transformações simples do modelo RGB, que não é baseado na percepção — não se relacionam diretamente com os atributos fotométricos de formação da cor de mesmos nomes, conforme definidos por cientistas e organizações como a CIE ou a ASTM. Ainda assim, vale a pena revisar essas definições antes de passar à derivação de nossos modelos. Para as definições dos atributos de formação da cor apresentadas a seguir, ver:
Brilhância e colorido são medidas absolutas, que geralmente descrevem a distribuição espectral da luz que entra no olho, enquanto luminosidade e croma são medidos em relação a algum ponto branco e, portanto, são frequentemente usados para descrever cores de superfícies, permanecendo aproximadamente constantes mesmo quando a brilhância e o colorido mudam sob diferentes condições de iluminação. Saturação pode ser definida como a razão entre colorido e brilhância ou entre croma e luminosidade.
HSL, HSV e modelos relacionados podem ser derivados por estratégias geométricas ou entendidos como casos específicos de um «modelo LHS generalizado». Os criadores dos modelos HSL e HSV tomaram um cubo RGB — com as quantidades constituintes de luz vermelha, verde e azul em uma cor denotadas por R, G, B ∈ [0, 1] — e o inclinaram sobre um de seus vértices, de modo que o preto ficasse na origem e o branco diretamente acima dele ao longo do eixo vertical; então, mediram o matiz das cores no cubo pelo ângulo em torno desse eixo, começando pelo vermelho a 0°. Em seguida, estabeleceram uma caracterização de brilhância/valor/luminosidade e definiram a saturação de modo que variasse de 0 ao longo do eixo até 1 no ponto mais colorido para cada par dos outros parâmetros. Programas destinados ao usuário final podem usar outra escala. Por exemplo, no Microsoft Paint, o matiz varia de 0 a 239, em vez de 0 a 360 graus, e a saturação e a luminosidade (denominada «Lum») variam de 0 a 240, em vez de 0 a 1.

Em cada um de nossos modelos, calculamos tanto o matiz quanto aquilo que este artigo denominará croma, seguindo Joblove e Greenberg (1978), da mesma maneira — isto é, o matiz de uma cor tem os mesmos valores numéricos em todos esses modelos, assim como seu croma. Se tomarmos nosso cubo RGB inclinado e o projetarmos sobre o «plano de cromaticidade» perpendicular ao eixo neutro, nossa projeção assumirá a forma de um hexágono, com vermelho, amarelo, verde, ciano, azul e magenta nos vértices (fig. 9). O matiz é aproximadamente o ângulo do vetor até um ponto da projeção, com o vermelho em 0°, enquanto o croma é aproximadamente a distância do ponto à origem.
Mais precisamente, tanto o matiz quanto o croma neste modelo são definidos em relação à forma hexagonal da projeção. O croma é a proporção da distância da origem à borda do hexágono. Na parte inferior do diagrama adjacente, trata-se da razão entre os comprimentos OP/OP′ ou, alternativamente, da razão entre os raios dos dois hexágonos. Essa razão é a diferença entre os maiores e menores valores de R, G ou B de uma cor. Para facilitar a escrita das definições, denotaremos esses valores máximo, mínimo e de croma dos componentes por M, m e C, respectivamente.
Essas operações não exigem que os valores R, G e B sejam normalizados para um intervalo específico (por exemplo, um intervalo de 0–1 funciona tão bem quanto um intervalo de 0–255).
Para entender por que o croma pode ser escrito como M − m, observe que qualquer cor neutra, com R = G = B, projeta-se sobre a origem e, portanto, tem croma 0. Assim, se adicionarmos ou subtrairmos a mesma quantidade dos três valores R, G e B, mover-nos-emos verticalmente dentro do cubo inclinado e não alteraremos a projeção. Consequentemente, quaisquer duas cores (R, G, B) e (R − m, G − m, B − m) projetam-se sobre o mesmo ponto e têm o mesmo croma. O croma de uma cor com um de seus componentes igual a zero (m = 0) é simplesmente o máximo dos outros dois componentes. Esse croma é M no caso particular de uma cor com um componente zero e M − m no caso geral.
O matiz é a proporção da distância percorrida ao redor da borda do hexágono que passa pelo ponto projetado, originalmente medida no intervalo [0, 1], mas hoje normalmente medida em graus [0°, 360°). Para pontos que se projetam sobre a origem no plano de cromaticidade (isto é, cinzas), o matiz é indefinido. Matematicamente, essa definição de matiz é escrita por partes:
Às vezes, atribui-se às cores neutras (isto é, com C = 0) um matiz de 0° por conveniência de representação.

Essas definições equivalem a uma deformação geométrica de hexágonos em círculos: cada lado do hexágono é mapeado linearmente em um arco de 60° do círculo (fig. 10). Após essa transformação, o matiz é precisamente o ângulo em torno da origem, e o croma, a distância até a origem: o ângulo e a magnitude do vetor que aponta para uma cor.

Às vezes, em aplicações de análise de imagens, essa transformação de hexágono em círculo é omitida, e o matiz e o croma (que denotaremos por H2 e C2) são definidos pelas transformações usuais de coordenadas cartesianas para polares (fig. 11). A forma mais simples de derivá-los é por meio de um par de coordenadas cartesianas de cromaticidade, que chamaremos de α e β:
(A função atan2, uma «arcotangente de dois argumentos», calcula o ângulo a partir de um par de coordenadas cartesianas.)
Observe que essas duas definições de matiz (H e H2) quase coincidem, com uma diferença máxima, para qualquer cor, de cerca de 1,12° — que ocorre em doze matizes específicos, por exemplo H = 13,38°, H2 = 12,26° — e com H = H2 para todo múltiplo de 30°. As duas definições de croma (C e C2) diferem de modo mais substancial: são iguais nos vértices de nosso hexágono, mas, em pontos a meio caminho entre dois vértices, como H = H2 = 30°, temos C = 1, enquanto uma diferença de cerca de 13,4%.

Embora a definição de matiz seja relativamente pouco controversa — ela satisfaz aproximadamente o critério de que cores com o mesmo matiz percebido tenham o mesmo matiz numérico —, a definição de uma dimensão de luminosidade ou valor é menos evidente: há várias possibilidades, dependendo da finalidade e dos objetivos da representação. Quatro das mais comuns são apresentadas a seguir (fig. 12; três delas também aparecem na fig. 8):
Todas as quatro formulações deixam o eixo neutro inalterado. Isto é, para cores com R = G = B, qualquer uma das quatro formulações produz uma luminosidade igual ao valor de R, G ou B.
Para uma comparação gráfica, ver fig. 13 abaixo.

Ao codificar cores em um modelo matiz/luminosidade/croma ou matiz/valor/croma (usando as definições das duas seções anteriores), nem todas as combinações de luminosidade (ou valor) e croma são significativas: isto é, metade das cores que podem ser denotadas usando H ∈ [0°, 360°), C ∈ [0, 1] e V ∈ [0, 1] ficam fora da gama RGB (as partes cinzentas das fatias na figura 14). Os criadores desses modelos consideraram isso um problema para alguns usos. Por exemplo, em uma interface de seleção de cores com duas dimensões em um retângulo e a terceira em um controle deslizante, metade desse retângulo é constituída por espaço não utilizado. Agora, imagine que temos um controle deslizante de luminosidade: a intenção do usuário ao ajustá-lo é potencialmente ambígua — como o programa deve lidar com cores fora da gama? Ou, inversamente, se o usuário selecionou um roxo escuro tão colorido quanto possível e, em seguida, move o controle de luminosidade para cima, o que deve ser feito: o usuário preferiria ver um roxo mais claro ainda tão colorido quanto possível para o matiz e a luminosidade dados ou um roxo mais claro com exatamente o mesmo croma da cor original ?
Para resolver problemas como esses, os modelos HSL e HSV escalonam o croma de modo que ele sempre se ajuste ao intervalo [0, 1] para cada combinação de matiz e luminosidade ou valor, chamando o novo atributo de saturação em ambos os casos (fig. 14). Para calcular qualquer uma delas, basta dividir o croma pelo croma máximo para aquele valor ou luminosidade.

O modelo HSI comumente usado em visão computacional, que adota H2 como dimensão de matiz e a média dos componentes I («intensidade») como dimensão de luminosidade, não tenta «preencher» um cilindro por meio de sua definição de saturação. Em vez de apresentar interfaces de escolha ou modificação de cores a usuários finais, o objetivo do HSI é facilitar a separação de formas em uma imagem. A saturação é, portanto, definida de acordo com a definição psicométrica: croma relativo à luminosidade (fig. 15). Ver a seção Uso em análise de imagens deste artigo.
O uso do mesmo nome para essas três definições diferentes de saturação gera alguma confusão, pois os três atributos descrevem relações entre cores substancialmente diferentes; em HSV e HSI, o termo corresponde aproximadamente à definição psicométrica, de croma de uma cor relativo à sua própria luminosidade, mas em HSL ele está longe disso. Pior ainda, a palavra saturação também é frequentemente usada para uma das medidas que chamamos de croma acima (C ou C2).
Todos os valores de parâmetros mostrados abaixo são dados como valores no intervalo [0, 1], exceto os de H e H2, que estão no intervalo [0°, 360°).
| Cor | R | G | B | H | H2 | C | C2 | V | L | I | Y′601 | SHSV | SHSL | SHSI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #FFFFFF | 1.000 | 1.000 | 1.000 | — | — | 0.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 0.000 | 0.000 | 0.000 |
| #808080 | 0.500 | 0.500 | 0.500 | — | — | 0.000 | 0.000 | 0.500 | 0.500 | 0.500 | 0.500 | 0.000 | 0.000 | 0.000 |
| #000000 | 0.000 | 0.000 | 0.000 | — | — | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
| #FF0000 | 1.000 | 0.000 | 0.000 | 0,0° | 0,0° | 1.000 | 1.000 | 1.000 | 0.500 | 0.333 | 0.299 | 1.000 | 1.000 | 1.000 |
| #BFBF00 | 0.750 | 0.750 | 0.000 | 60,0° | 60,0° | 0.750 | 0.750 | 0.750 | 0.375 | 0.500 | 0.664 | 1.000 | 1.000 | 1.000 |
| #008000 | 0.000 | 0.500 | 0.000 | 120,0° | 120,0° | 0.500 | 0.500 | 0.500 | 0.250 | 0.167 | 0.293 | 1.000 | 1.000 | 1.000 |
| #80FFFF | 0.500 | 1.000 | 1.000 | 180,0° | 180,0° | 0.500 | 0.500 | 1.000 | 0.750 | 0.833 | 0.850 | 0.500 | 1.000 | 0.400 |
| #8080FF | 0.500 | 0.500 | 1.000 | 240,0° | 240,0° | 0.500 | 0.500 | 1.000 | 0.750 | 0.667 | 0.557 | 0.500 | 1.000 | 0.250 |
| #BF40BF | 0.750 | 0.250 | 0.750 | 300,0° | 300,0° | 0.500 | 0.500 | 0.750 | 0.500 | 0.583 | 0.457 | 0.667 | 0.500 | 0.571 |
| #A0A424 | 0.628 | 0.643 | 0.142 | 61,8° | 61,5° | 0.501 | 0.494 | 0.643 | 0.393 | 0.471 | 0.581 | 0.779 | 0.638 | 0.699 |
| #411BEA | 0.255 | 0.104 | 0.918 | 251,1° | 250,0° | 0.814 | 0.750 | 0.918 | 0.511 | 0.426 | 0.242 | 0.887 | 0.832 | 0.756 |
| #1EAC41 | 0.116 | 0.675 | 0.255 | 134,9° | 133,8° | 0.559 | 0.504 | 0.675 | 0.396 | 0.349 | 0.460 | 0.828 | 0.707 | 0.667 |
| #F0C80E | 0.941 | 0.785 | 0.053 | 49,5° | 50,5° | 0.888 | 0.821 | 0.941 | 0.497 | 0.593 | 0.748 | 0.944 | 0.893 | 0.911 |
| #B430E5 | 0.704 | 0.187 | 0.897 | 283,7° | 284,8° | 0.710 | 0.636 | 0.897 | 0.542 | 0.596 | 0.423 | 0.792 | 0.775 | 0.686 |
| #ED7651 | 0.931 | 0.463 | 0.316 | 14,3° | 13,2° | 0.615 | 0.556 | 0.931 | 0.624 | 0.570 | 0.586 | 0.661 | 0.817 | 0.446 |
| #FEF888 | 0.998 | 0.974 | 0.532 | 56,9° | 57,4° | 0.466 | 0.454 | 0.998 | 0.765 | 0.835 | 0.931 | 0.467 | 0.991 | 0.363 |
| #19CB97 | 0.099 | 0.795 | 0.591 | 162,4° | 163,4° | 0.696 | 0.620 | 0.795 | 0.447 | 0.495 | 0.564 | 0.875 | 0.779 | 0.800 |
| #362698 | 0.211 | 0.149 | 0.597 | 248,3° | 247,3° | 0.448 | 0.420 | 0.597 | 0.373 | 0.319 | 0.219 | 0.750 | 0.601 | 0.533 |
| #7E7EB8 | 0.495 | 0.493 | 0.721 | 240,5° | 240,4° | 0.228 | 0.227 | 0.721 | 0.607 | 0.570 | 0.520 | 0.316 | 0.290 | 0.135 |
A finalidade original do HSL, do HSV e de modelos semelhantes, e sua aplicação atual mais comum, está nas ferramentas de seleção de cores. Em sua forma mais simples, alguns desses seletores fornecem três controles deslizantes, um para cada atributo. A maioria, entretanto, mostra uma fatia bidimensional do modelo, juntamente com um controle deslizante que determina qual fatia específica é exibida. Esse último tipo de interface gráfica apresenta grande variedade, devido à escolha entre cilindros, prismas hexagonais ou cones/bicones sugeridos pelos modelos (ver o diagrama próximo ao topo da página). Na década de 1990, ferramentas de seleção de cores HSL e HSV já eram amplamente utilizadas, e a maioria permaneceu praticamente inalterada desde então: hoje, quase todo seletor de cores de computador utiliza HSL ou HSV, pelo menos como uma opção. Algumas variantes mais sofisticadas são projetadas para escolher conjuntos inteiros de cores, baseando suas sugestões de cores compatíveis nas relações HSL ou HSV entre elas.
A maioria das aplicações web que necessita de seleção de cores também baseia suas ferramentas em HSL ou HSV, e há seletores de cores de código aberto prontos para uso para a maioria dos principais frameworks de front-end da web. A especificação CSS 3 permite que autores de páginas web especifiquem cores diretamente usando coordenadas HSL.
HSL e HSV são às vezes usados para definir gradientes em visualização de dados, como em mapas ou imagens médicas. Por exemplo, o popular programa de SIG ArcGIS historicamente aplicou gradientes personalizáveis baseados em HSV a dados geográficos numéricos.
Programas de edição de imagem também costumam incluir ferramentas para ajustar cores com referência a coordenadas HSL ou HSV, ou a coordenadas de um modelo baseado na «intensidade» ou na luma definidas acima. Em particular, ferramentas com um par de controles deslizantes de «matiz» e «saturação» são comuns desde pelo menos o fim da década de 1980, embora várias ferramentas de cores mais complexas também tenham sido implementadas. Por exemplo, o visualizador e editor de cores de imagens para Unix xv permitia que seis intervalos de matiz (H) definidos pelo usuário fossem rotacionados e redimensionados, incluía um controle semelhante a um mostrador para saturação (SHSV) e uma interface semelhante a curvas para controlar o valor (V). O editor de imagens Picture Window Pro inclui uma ferramenta de «correção de cores» que permite remapear de modo complexo pontos em um plano matiz/saturação relativo ao espaço HSL ou HSV.
Editores de vídeo também usam esses modelos. Por exemplo, tanto a Avid quanto o Final Cut Pro incluem ferramentas de cor baseadas em HSL ou em geometria semelhante para ajustar cores em vídeo. Com a ferramenta da Avid, os usuários escolhem um vetor clicando em um ponto dentro do círculo de matiz/saturação para deslocar por esse vetor todas as cores em determinado nível de luminosidade (sombras, meios-tons, realces).
Desde a versão 4.0, os modos de mesclagem «Luminosity», «Hue», «Saturation» e «Color» do Adobe Photoshop compõem camadas usando uma geometria de cores luma/croma/matiz. Esses modos foram amplamente copiados, mas vários imitadores usam, em vez disso, as geometrias HSL (por exemplo, PhotoImpact, PaintShop Pro) ou HSV.
HSL, HSV, HSI ou modelos relacionados são frequentemente usados em visão computacional e análise de imagem para detecção de características ou segmentação de imagem. As aplicações dessas ferramentas incluem detecção de objetos, por exemplo em visão robótica; reconhecimento de objetos, por exemplo de rostos, texto ou placas de veículos; recuperação de imagens baseada em conteúdo; e análise de imagens médicas.
Na maior parte dos casos, algoritmos de visão computacional usados em imagens coloridas são extensões diretas de algoritmos projetados para imagens em escala de cinza, como k-means ou agrupamento difuso das cores dos pixels, ou detecção de bordas de Canny. No caso mais simples, cada componente de cor é processado separadamente pelo mesmo algoritmo. Portanto, é importante que as características de interesse possam ser distinguidas nas dimensões de cor empregadas. Como os componentes R, G e B da cor de um objeto em uma imagem digital são todos correlacionados com a quantidade de luz que incide sobre o objeto e, portanto, entre si, descrições de imagens em termos desses componentes dificultam a discriminação de objetos. Descrições em termos de matiz/luminosidade/croma ou matiz/luminosidade/saturação costumam ser mais relevantes.
A partir do fim da década de 1970, transformações como HSV ou HSI foram usadas como compromisso entre eficácia para segmentação e complexidade computacional. Elas podem ser consideradas semelhantes, em abordagem e intenção, ao processamento neural empregado pela visão humana das cores, embora não coincidam nos detalhes: se o objetivo é detectar objetos, separar aproximadamente matiz, luminosidade e croma ou saturação é eficaz, mas não há razão específica para imitar estritamente a resposta humana às cores. A dissertação de mestrado de John Kender, de 1976, propôs o modelo HSI. Ohta et al. (1980), por sua vez, usaram um modelo composto por dimensões semelhantes às que denominamos I, α e β. Nos últimos anos, esses modelos continuaram a ser amplamente utilizados, pois seu desempenho se compara favoravelmente ao de modelos mais complexos, e sua simplicidade computacional continua atraente.
Embora HSL, HSV e espaços relacionados sejam suficientemente adequados, por exemplo, para escolher uma única cor, eles ignoram grande parte da complexidade da aparência das cores. Essencialmente, trocam relevância perceptual por velocidade de cálculo, refletindo um período da história da computação — estações gráficas avançadas da década de 1970 ou computadores pessoais de meados da década de 1990 — em que modelos mais sofisticados teriam custo computacional elevado demais.
HSL e HSV são transformações simples do RGB que preservam simetrias do cubo RGB sem relação com a percepção humana, de modo que seus vértices R, G e B são equidistantes do eixo neutro e igualmente espaçados ao redor dele. Se representarmos a gama RGB em um espaço de maior uniformidade perceptual, como CIELAB (ver abaixo), torna-se imediatamente claro que as primárias vermelha, verde e azul não têm a mesma luminosidade ou o mesmo croma, nem matizes uniformemente espaçados. Além disso, diferentes monitores RGB usam primárias diferentes e, por isso, têm gamas diferentes. Como HSL e HSV são definidos exclusivamente em referência a algum espaço RGB, eles não são espaços de cores absolutos: para especificar uma cor com precisão, é necessário informar não apenas os valores HSL ou HSV, mas também as características do espaço RGB em que se baseiam, incluindo a correção gama utilizada.
Se tomarmos uma imagem e extrairmos seus componentes de matiz, saturação e luminosidade ou valor, e então os compararmos aos componentes de mesmos nomes definidos por cientistas da cor, podemos perceber rapidamente a diferença, em termos perceptuais. Por exemplo, examine as imagens a seguir de um artista que cospe fogo (fig. 13). A imagem original está no espaço de cores sRGB. O L* do CIELAB é uma grandeza acromática de luminosidade definida pela CIE (dependente apenas da luminância perceptualmente acromática Y, e não dos componentes cromáticos mistos X ou Z do espaço CIEXYZ, do qual o próprio espaço sRGB deriva), e é evidente que ela se parece, em luminosidade perceptual, com a imagem colorida original. A luma é aproximadamente semelhante, mas difere um pouco em cromas altos, nos quais mais se desvia da dependência exclusiva da luminância acromática real (Y, ou equivalentemente L*) e é influenciada pela cromaticidade colorimétrica (x,y, ou, de modo equivalente, a*,b* do CIELAB). Já o L do HSL e o V do HSV divergem substancialmente da luminosidade perceptual.

Embora nenhuma das dimensões desses espaços corresponda aos seus análogos perceptuais, o valor do HSV e a saturação do HSL são particularmente problemáticos. No HSV, considera-se que a primária azul e o branco tenham o mesmo valor, embora, perceptualmente, a primária azul tenha algo em torno de 10% da luminância do branco (a fração exata depende das primárias RGB específicas em uso). No HSL, considera-se que uma mistura de 100% de vermelho, 100% de verde e 90% de azul — isto é, um amarelo muito claro — tenha a mesma saturação que a primária verde , embora a primeira cor quase não tenha croma nem saturação pelas definições psicométricas convencionais. Tais anomalias levaram Cynthia Brewer, especialista na escolha de esquemas de cores para mapas e visualizações de informação, a afirmar à American Statistical Association:
A ciência da computação oferece alguns parentes mais pobres desses espaços perceptuais que também podem aparecer na interface de seu programa, como HSV e HLS. São transformações matemáticas simples do RGB e parecem ser sistemas perceptuais porque usam a terminologia matiz–luminosidade/valor–saturação. Mas examine-os com cuidado; não se deixe enganar. As dimensões perceptuais da cor são mal escalonadas pelas especificações de cor fornecidas nesses e em alguns outros sistemas. Por exemplo, saturação e luminosidade são confundidas, de modo que uma escala de saturação também pode conter uma ampla faixa de luminosidades (por exemplo, pode progredir de branco para verde, o que combina tanto luminosidade quanto saturação). Da mesma forma, matiz e luminosidade são confundidos, de modo que, por exemplo, um amarelo saturado e um azul saturado podem ser designados com a mesma «luminosidade», embora apresentem grandes diferenças de luminosidade percebida. Essas falhas tornam os sistemas difíceis de usar para controlar sistematicamente a aparência de um esquema de cores. Se for necessário fazer muitos ajustes para alcançar o efeito desejado, o sistema oferece pouco benefício em comparação com lidar diretamente com especificações RGB ou CMY.
Se esses problemas tornam HSL e HSV problemáticos para escolher cores ou esquemas de cores, tornam-nos muito piores para ajuste de imagens. HSL e HSV, como Brewer observou, confundem atributos perceptuais de formação da cor, de modo que alterar qualquer dimensão resulta em mudanças não uniformes nas três dimensões perceptuais e distorce todas as relações de cor da imagem. Por exemplo, girar o matiz de um azul-escuro puro em direção ao verde também reduz seu croma percebido e aumenta sua luminosidade percebida (o segundo é mais acinzentado e claro), mas a mesma rotação de matiz tem o efeito oposto sobre a luminosidade e o croma de um verde-azulado mais claro — de para (o segundo é mais colorido e ligeiramente mais escuro). No exemplo abaixo (fig. 21), a imagem (a) é a fotografia original de uma tartaruga-verde. Na imagem (b), giramos o matiz (H) de cada cor em −30°, mantendo constantes o valor e a saturação HSV ou a luminosidade e a saturação HSL. Na imagem à direita (c), aplicamos a mesma rotação ao matiz HSL/HSV de cada cor, mas forçamos a luminosidade CIELAB (L*, uma aproximação razoável da luminosidade percebida) a permanecer constante. Observe como a versão intermediária com matiz deslocado, sem essa correção, altera drasticamente as relações de luminosidade percebida entre as cores da imagem. Em particular, o casco da tartaruga fica muito mais escuro e com menos contraste, enquanto a água ao fundo fica muito mais clara. A imagem (d) usa CIELAB para deslocar o matiz; a diferença em relação a (c) demonstra os erros de matiz e saturação.
Como o matiz é uma grandeza circular, representada numericamente com uma descontinuidade em 360°, é difícil utilizá-lo em cálculos estatísticos ou comparações quantitativas: a análise requer o uso de estatística circular. Além disso, o matiz é definido por partes, em segmentos de 60°, nos quais a relação de luminosidade, valor e croma com R, G e B depende do segmento de matiz em questão. Essa definição introduz descontinuidades, vértices que podem ser vistos claramente em fatias horizontais de HSL ou HSV.
Charles Poynton, especialista em vídeo digital, enumera os problemas acima relativos a HSL e HSV em seu Color FAQ e conclui que:
HSB e HLS foram desenvolvidos para especificar numericamente matiz, saturação e brilhância (ou matiz, luminosidade e saturação) em uma época em que os usuários precisavam especificar cores numericamente. As formulações usuais de HSB e HLS apresentam falhas em relação às propriedades da visão de cores. Agora que os usuários podem escolher cores visualmente, escolher cores relacionadas a outras mídias (como PANTONE) ou usar sistemas baseados na percepção como L*u*v* e L*a*b*, HSB e HLS deveriam ser abandonados.
Os criadores do HSL e do HSV estavam longe de ser os primeiros a imaginar cores dispostas em formas cônicas ou esféricas, com os neutros indo do preto ao branco em um eixo central e os matizes correspondendo a ângulos em torno desse eixo. Arranjos semelhantes remontam ao século XVIII e continuam a ser desenvolvidos nos modelos científicos mais modernos.
Para converter de HSL ou HSV para RGB, essencialmente invertemos as etapas listadas acima (como antes, R, G, B ∈ [0, 1]). Primeiro, calculamos o croma multiplicando a saturação pelo croma máximo para determinada luminosidade ou valor. Em seguida, encontramos o ponto em uma das três faces inferiores do cubo RGB que possui o mesmo matiz e croma que nossa cor (e, portanto, projeta-se sobre o mesmo ponto no plano de cromaticidade). Por fim, adicionamos quantidades iguais de R, G e B para atingir a luminosidade ou o valor adequados.
Dada uma cor com matiz H ∈ [0°, 360°), saturação SL ∈ [0, 1] e luminosidade L ∈ [0, 1], primeiro encontramos o croma:
Em seguida, podemos encontrar um ponto (R1, G1, B1) ao longo das três faces inferiores do cubo RGB, com o mesmo matiz e croma de nossa cor (usando o valor intermediário X para o segundo maior componente dessa cor):
Na equação acima, a notação refere-se ao resto da divisão euclidiana de por 2. não é necessariamente um número inteiro.
Quando é um número inteiro, a fórmula «vizinha» produziria o mesmo resultado, pois ou , conforme apropriado.
Por fim, podemos encontrar R, G e B adicionando a mesma quantidade a cada componente, para corresponder à luminosidade:
As funções poligonais definidas por partes podem ser um pouco simplificadas com o uso criterioso de valores mínimos e máximos, bem como da operação de resto.
Dada uma cor com matiz , saturação e luminosidade , primeiro definimos a função:
em que e:
E os valores de saída R, G e B (de ) são:
As fórmulas alternativas acima permitem implementações mais curtas. Nessas fórmulas, a operação também retorna a parte fracionária do módulo; por exemplo, , e .
A forma básica é construída da seguinte maneira: é um «triângulo» no qual valores maiores ou iguais a −1 começam em k=2 e terminam em k=10, e o ponto mais alto ocorre em k=6. Em seguida, por , alteramos os valores maiores que 1 para 1. Depois, por , alteramos os valores menores que −1 para −1. Nesse ponto, obtemos algo semelhante à forma vermelha da fig. 24 após uma inversão vertical (em que o máximo é 1 e o mínimo é −1). As funções R, G e B de H usam essa forma transformada da seguinte maneira: deslocada modularmente em X (por n), de maneira diferente para R, G e B; escalonada em Y (por ); e deslocada em Y (por L).
Observamos as seguintes propriedades da forma (a fig. 24 pode ajudar a desenvolver uma intuição sobre elas):

Dada uma cor HSV com matiz H ∈ [0°, 360°), saturação SV ∈ [0, 1] e valor V ∈ [0, 1], podemos usar a mesma estratégia. Primeiro, encontramos o croma:
Em seguida, podemos novamente encontrar um ponto (R1, G1, B1) ao longo das três faces inferiores do cubo RGB, com o mesmo matiz e croma de nossa cor (usando o valor intermediário X para o segundo maior componente dessa cor):
Como antes, quando é um número inteiro, as fórmulas «vizinhas» produzem o mesmo resultado.
Por fim, podemos encontrar R, G e B adicionando a mesma quantidade a cada componente, para corresponder ao valor:
Dada uma cor com matiz , saturação e valor , primeiro definimos a função:
em que e:
E os valores de saída R, G e B (de ) são:
As fórmulas alternativas equivalentes acima permitem uma implementação mais curta. Nessas fórmulas, também retorna a parte fracionária do módulo; por exemplo, . Os valores de . A forma básica
é construída da seguinte maneira: é um «triângulo» no qual os valores não negativos começam em k=0, atingem o ponto mais alto em k=2 e «terminam» em k=4; em seguida, alteramos os valores maiores que um para um por ; depois, alteramos os valores negativos para zero por — e obtemos (para ) algo semelhante à forma verde da fig. 24 (cujo valor máximo é 1 e o mínimo é 0). As funções R, G e B de H usam essa forma transformada da seguinte maneira: deslocada modularmente em X (por n), de maneira diferente para R, G e B; escalonada em Y (por ); e deslocada em Y (por V). Observamos as seguintes propriedades da forma (a fig. 24 pode ajudar a desenvolver uma intuição sobre isso):
Dada uma cor HSI com matiz H ∈ [0°, 360°), saturação SI ∈ [0, 1] e intensidade I ∈ [0, 1], podemos usar a mesma estratégia, em uma ordem ligeiramente diferente:
em que é o croma.
Em seguida, podemos novamente encontrar um ponto (R1, G1, B1) ao longo das três faces inferiores do cubo RGB, com o mesmo matiz e croma de nossa cor (usando o valor intermediário X para o segundo maior componente dessa cor):
A sobreposição (quando é um número inteiro) ocorre porque as duas formas de calcular o valor são equivalentes: ou , conforme apropriado.
Por fim, podemos encontrar R, G e B adicionando a mesma quantidade a cada componente, para corresponder à luminosidade:
Dada uma cor com matiz H ∈ [0°, 360°), croma C ∈ [0, 1] e luma Y′601 ∈ [0, 1], podemos novamente usar a mesma estratégia. Como já temos H e C, podemos encontrar diretamente nosso ponto (R1, G1, B1) ao longo das três faces inferiores do cubo RGB:
A sobreposição (quando é um número inteiro) ocorre porque as duas formas de calcular o valor são equivalentes: ou , conforme apropriado.
Então podemos encontrar R, G e B adicionando a mesma quantidade a cada componente, para corresponder aproximadamente à luma (usando os coeficientes arredondados 0,30, 0,59 e 0,11):
Dada uma cor com matiz , saturação e valor ,
Dada uma cor com matiz , saturação e luminosidade ,
Esta é uma reapresentação da conversão anterior.
Os valores devem estar no intervalo .
Com o componente máximo (isto é, valor)
e o componente mínimo
a amplitude (isto é, croma)
e o ponto médio do intervalo (isto é, luminosidade)
obtemos o matiz comum:
e as saturações distintas:
Passe o cursor sobre as amostras abaixo para ver os valores R, G e B de cada amostra em uma dica de ferramenta.
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| L | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||
| V | S | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 3/4 | 1/2 | 1/4 | 0 | 1/4 | 1/2 | 3/4 | 1 | |
| 1 | |||||||||
| 7/8 | |||||||||
| 3/4 | |||||||||
| 5/8 | |||||||||
| 1/2 | |||||||||
| 3/8 | |||||||||
| 1/4 | |||||||||
| 1/8 | |||||||||
| 0 | |||||||||