HSL e HSV

Modelos tridimensionais e cortes dos cilindros HSL e HSV, comparados lado a lado.
Fig. 1. HSL (a–d) e HSV (e–h). Acima (a, e): modelos tridimensionais em corte de cada um. Abaixo: representações bidimensionais que mostram dois dos três parâmetros de cada modelo de uma só vez, mantendo o outro constante: superfícies cilíndricas (b, f) de saturação constante, neste caso a superfície externa de cada cilindro; seções transversais horizontais (c, g) de luminosidade HSL ou valor HSV constantes, neste caso as fatias a meio caminho da altura de cada cilindro; e seções transversais verticais retangulares (d, h) de matiz constante, neste caso dos matizes vermelho a 0° e seu complementar ciano a 180°.

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.

Princípio básico

Fig. 2a: cilindro HSL
Fig. 2a: cilindro HSL
Fig. 2b: cilindro HSV
Fig. 2b: cilindro HSV

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.

Fig. 3a–b. Se representarmos o matiz e (a) a luminosidade HSL ou (b) o valor HSV em função do croma (amplitude dos valores RGB), em vez da saturação (croma dividido pelo croma máximo daquela fatia), o sólido resultante será, respectivamente, um bicone ou um cone, e não um cilindro. Diagramas desse tipo frequentemente afirmam representar HSL ou HSV diretamente, rotulando de forma confusa a dimensão de croma como «saturação».
Fig. 3a–b. Se representarmos o matiz e (a) a luminosidade HSL ou (b) o valor HSV em função do croma (amplitude dos valores RGB), em vez da saturação (croma dividido pelo croma máximo daquela fatia), o sólido resultante será, respectivamente, um bicone ou um cone, e não um cilindro. Diagramas desse tipo frequentemente afirmam representar HSL ou HSV diretamente, rotulando de forma confusa a dimensão de croma como «saturação».
Fig. 3a–b. Se representarmos o matiz e (a) a luminosidade HSL ou (b) o valor HSV em função do croma (amplitude dos valores RGB), em vez da saturação (croma dividido pelo croma máximo daquela fatia), o sólido resultante será, respectivamente, um bicone ou um cone, e não um cilindro. Diagramas desse tipo frequentemente afirmam representar HSL ou HSV diretamente, rotulando de forma confusa a dimensão de croma como «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).

Motivação

Vários termos de mistura de tintas podem ser organizados em um arranjo triangular: a borda esquerda do triângulo mostra o branco no topo e o preto na base, com o cinza entre os dois, cada um em seu respectivo oval. Uma cor pura (neste caso, um azul-esverdeado vivo) encontra-se no vértice direito do triângulo. Na borda entre a cor pura e o preto há uma shade (cor escurecida; um azul-esverdeado mais escuro); entre a cor pura e o branco, uma tint (cor clareada; um azul-esverdeado mais claro e desbotado); e um tone (tom) encontra-se no meio do triângulo (um azul-esverdeado atenuado).
Fig. 4: Há muito tempo, pintores misturam cores combinando pigmentos relativamente vivos com preto e branco. Misturas com branco são chamadas de tints (cores clareadas), misturas com preto, de shades (cores escurecidas), e misturas com ambos, de tones (tons). Ver Matizes e tonalidades.
Modelo bicônico de Ostwald, com 24 matizes puros dispostos em círculo e gradações de cada matiz em direção ao branco e ao preto.
Fig. 5: Este modelo de cores de 1916, do químico alemão Wilhelm Ostwald, exemplifica a abordagem de «misturas com branco e preto», organizando 24 cores «puras» em um círculo de matizes e as cores de cada matiz em um triângulo. Assim, o modelo assume a forma de um bicone.
O cubo RGB tem o preto em sua origem, e as três dimensões R, G e B apontam em direções ortogonais para longe do preto. O vértice em cada uma dessas direções corresponde à respectiva cor primária (vermelho, verde ou azul), enquanto os vértices mais afastados do preto são combinações de duas primárias (vermelho mais verde produz amarelo, vermelho mais azul produz magenta, verde mais azul produz ciano). No vértice do cubo mais distante da origem encontra-se o branco. Qualquer ponto do cubo descreve uma cor específica dentro da gama RGB.
Fig. 6a: A gama RGB pode ser organizada em um cubo.
A mesma imagem, com uma parte removida para maior clareza.
Fig. 6b: A mesma imagem, com uma parte removida para maior clareza
No estilo clássico de um pedido de patente, este é um diagrama em preto e branco, com o nome da patente, o nome do inventor e o número da patente listados na parte superior e sombreamento por hachuras. O diagrama mostra uma vista tridimensional da geometria HSL bicônica da Tektronix, constituída por fatias circulares horizontais ao longo de um eixo vertical, separadas para facilitar a visualização. Dentro de cada fatia circular, a saturação vai de zero no centro a um nas margens, enquanto o matiz é uma dimensão angular, começando no azul com matiz zero, passando pelo vermelho com matiz de 120 graus e pelo verde com matiz de 240 graus, e retornando ao azul.
Fig. 7. Os terminais gráficos da Tektronix usaram a primeira implementação comercial do HSL, em 1979. Este diagrama, proveniente de uma patente depositada em 1983, mostra a geometria bicônica subjacente ao modelo.

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. Controles RGB mostram a transformação de um laranja vivo em um laranja menos saturado.

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.

Derivação formal

Um diagrama semelhante a um fluxograma mostra a derivação do HSL, do HSV e de um modelo luma/croma/matiz. No topo há um «cubo de cores» RGB que, na primeira etapa, é inclinado sobre um de seus vértices, de modo que o preto fique na parte inferior e o branco na parte superior. Na etapa seguinte, os três modelos divergem, e a altura de vermelho, amarelo, verde, ciano, azul e magenta é definida com base na fórmula de luminosidade, valor ou luma: no HSV, todas essas seis cores são colocadas no plano que contém o branco, formando uma pirâmide hexagonal invertida; no HSL, as seis são colocadas em um plano a meio caminho entre o branco e o preto, formando uma bipirâmide; no modelo luma/croma/matiz, a altura é determinada pela fórmula aproximada luma igual a 0,3 vezes vermelho mais 0,6 vezes verde mais 0,1 vezes azul. Na etapa seguinte, cada fatia horizontal de HSL e HSV é expandida para preencher um prisma hexagonal de largura uniforme, enquanto o modelo luma/croma/matiz é simplesmente inserido nesse prisma sem modificação. Como etapa final, os prismas hexagonais dos três modelos são deformados em cilindros, refletindo a natureza da definição de matiz e saturação ou croma. Para detalhes completos e formalismo matemático, leia o restante desta seção.
Fig. 8. Derivação geométrica das representações cilíndricas HSL e HSV de um «cubo de cores» RGB.
Vídeos que demonstram a derivação geométrica acima para HSV (à esquerda) e HSL (à direita) como deformações contínuas do cubo RGB

Atributos de formação da cor

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:

Matiz
O «atributo de uma sensação visual segundo o qual uma área parece ser semelhante a uma das cores percebidas: vermelho, amarelo, verde e azul, ou a uma combinação de duas delas».
Radiância (Le,Ω)
A potência radiante da luz que atravessa determinada superfície por unidade de ângulo sólido e por unidade de área projetada, medida no SI em watt por esferorradiano por metro quadrado (W·sr−1·m−2).
Luminância (Y ou Lv,Ω)
A radiância ponderada pelo efeito de cada comprimento de onda sobre um observador humano típico, medida no SI em candela por metro quadrado (cd/m2). Frequentemente, o termo luminância é usado para a luminância relativa, Y/Yn, em que Yn é a luminância do ponto branco de referência.
Luma (Y′)
A soma ponderada dos valores R′, G′ e B′ com correção gama, usada em Y′CbCr, na compressão JPEG e na transmissão de vídeo.
Brilhância (ou valor)
O «atributo de uma sensação visual segundo o qual uma área parece emitir mais ou menos luz».
Luminosidade
A «brilhância relativa à brilhância de um branco iluminado de forma semelhante».
Colorido
O «atributo de uma sensação visual segundo o qual a cor percebida de uma área parece ser mais ou menos cromática».
Croma
O «colorido relativo à brilhância de um branco iluminado de forma semelhante».
Saturação
O «colorido de um estímulo relativo à sua própria brilhância».

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.

Abordagem geral

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.

Matiz e croma

Quando um cubo RGB, inclinado de modo que seu vértice branco fique verticalmente acima do vértice preto, é projetado no plano perpendicular a esse eixo neutro, forma-se um hexágono, com vermelho, amarelo, verde, ciano, azul e magenta dispostos em sentido anti-horário em seus vértices. Essa projeção define o matiz e o croma de qualquer cor, conforme descrito na legenda e no texto do artigo.
Fig. 9. Tanto o matiz quanto o croma são definidos com base na projeção do cubo RGB sobre um hexágono no «plano de cromaticidade». O croma é o tamanho relativo do hexágono que passa por um ponto, e o matiz indica quão longe ao longo da borda desse hexágono o ponto se encontra.

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.

À esquerda aparece a projeção hexagonal mostrada anteriormente. À direita, cada lado do hexágono foi transformado em um arco de 60° de um círculo com o mesmo raio.
Fig. 10. As definições de matiz e croma em HSL e HSV têm o efeito de deformar hexágonos em círculos.

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.

Em vez de medir matiz e croma em referência à borda hexagonal da projeção do cubo RGB no plano perpendicular ao seu eixo neutro, podemos definir no plano as coordenadas de cromaticidade alfa e beta — com alfa apontando na direção do vermelho e beta perpendicular a ela — e então definir matiz H2 e croma C2 como as coordenadas polares dessas duas. Isto é, a tangente do matiz é beta sobre alfa, e o quadrado do croma é alfa ao quadrado mais beta ao quadrado.
Fig. 11. Construir as coordenadas retangulares de cromaticidade α e β e, em seguida, transformá-las em matiz H2 e croma C2 produz valores ligeiramente diferentes daqueles obtidos pelo cálculo do matiz hexagonal H e do croma C: compare os números deste diagrama com os apresentados anteriormente nesta seção.

À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%.

Luminosidade

Quando representamos o valor HSV em função do croma, o resultado, independentemente do matiz, é um triângulo isósceles invertido, com preto na parte inferior e branco na parte superior, ladeado pelas cores mais cromáticas de dois matizes complementares nos vértices superior direito e esquerdo. Quando representamos a luminosidade HSL em função do croma, o resultado é um losango, novamente com preto na parte inferior e branco na parte superior, mas com os complementares coloridos nas extremidades horizontais da linha a meio caminho entre eles. Quando representamos a média dos componentes, às vezes chamada de intensidade HSI, em função do croma, o resultado é um paralelogramo cuja forma muda conforme o matiz, pois as cores mais cromáticas de cada matiz variam entre um terço e dois terços do caminho entre preto e branco. A representação da luma em função do croma produz um paralelogramo de forma muito mais diversa: o azul fica a cerca de 10% do caminho entre preto e branco, enquanto seu complementar amarelo fica a 90%; em contraste, o verde fica a cerca de 60% do caminho entre preto e branco, enquanto seu complementar magenta fica a 40%.
Fig. 12a–d. Quatro dimensões possíveis diferentes de «luminosidade», representadas em função do croma, para um par de matizes complementares. Cada gráfico é uma seção transversal vertical de seu sólido de cores tridimensional.

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.

Saturação

Cortes que comparam croma e saturação nos modelos HSL e HSV.
Fig. 14a–d. Tanto em HSL quanto em HSV, a saturação é simplesmente o croma escalonado para preencher o intervalo [0, 1] para cada combinação de matiz e luminosidade ou valor.

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.

Cortes do modelo HSI que comparam croma e saturação em função da intensidade.
Fig. 15a–b. No HSI, a saturação, mostrada na fatia à direita, é aproximadamente o croma relativo à luminosidade. Também é comum um modelo com dimensões I, H2, C2, mostrado na fatia à esquerda. Observe que o matiz nessas fatias é o mesmo matiz mostrado acima, mas H difere ligeiramente de H2.

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).

Exemplos

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

Uso em programas destinados ao usuário final

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.

Uso em análise de imagens

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.

Desvantagens

Fig. 20a: A gama sRGB mapeada no espaço CIELAB. Observe que as linhas que apontam para as primárias vermelha, verde e azul não são igualmente espaçadas pelo ângulo de matiz e têm comprimentos diferentes. As primárias também apresentam valores L* diferentes.
Fig. 20a: A gama sRGB mapeada no espaço CIELAB. Observe que as linhas que apontam para as primárias vermelha, verde e azul não são igualmente espaçadas pelo ângulo de matiz e têm comprimentos diferentes. As primárias também apresentam valores L* diferentes.
Fig. 20b: A gama Adobe RGB mapeada no espaço CIELAB. Observe também que esses dois espaços RGB têm gamas diferentes e, portanto, terão representações HSL e HSV diferentes.
Fig. 20b: A gama Adobe RGB mapeada no espaço CIELAB. Observe também que esses dois espaços RGB têm gamas diferentes e, portanto, terão representações HSL e HSV diferentes.

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.

Uma imagem colorida mostra uma cena de alto contraste e bastante dramática de um artista cuspindo uma grande chama alaranjada-amarela. Ele usa roupas escuras, mas coloridas, em tons de laranja-avermelhado.
Fig. 13a: Fotografia colorida (espaço de cores sRGB)
Uma imagem em escala de cinza que mostra o componente de luminosidade CIELAB da fotografia parece reproduzir fielmente a cena: lembra aproximadamente uma fotografia em preto e branco registrada em filme pancromático, com detalhes nítidos na chama, que é muito mais clara do que a roupa do homem ou o fundo.
Fig. 13b: CIELAB L* (posteriormente transformado de volta para sRGB para exibição consistente)
Uma imagem em escala de cinza que mostra a luma parece aproximadamente semelhante à imagem de luminosidade CIELAB, mas é um pouco mais clara nas áreas originalmente muito coloridas.
Fig. 13c: Luma Rec. 601 Y′
Uma imagem em escala de cinza que mostra a média dos componentes (intensidade HSI) da fotografia é uma reprodução muito menos convincente da fotografia colorida, com contraste reduzido, especialmente porque a chama aparece mais escura do que no original.
Fig. 13d: Média dos componentes: «intensidade» I
Uma imagem em escala de cinza que mostra o componente de valor HSV da fotografia deixa a chama completamente branca — na terminologia fotográfica, «estourada» — e a roupa do homem clara demais.
Fig. 13e: Valor HSV V
Uma imagem em escala de cinza que mostra o componente de luminosidade HSL da fotografia representa a chama aproximadamente como cinza médio e destrói o efeito dramático do original ao reduzir radicalmente seu contraste.
Fig. 13f: Luminosidade HSL L
Doze matizes igualmente espaçados em HSV apresentam espaçamentos desiguais no plano cromático CIELAB.
Fig. 20c: 12 pontos na roda de cores HSV em um plano de croma CIELAB, mostrando a falta de uniformidade do HSV em matiz e saturação

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.

Fig. 21a: Fotografia colorida
Fig. 21a: Fotografia colorida
Fig. 21b: Matiz HSL/HSV de cada cor deslocado em
Fig. 21b: Matiz HSL/HSV de cada cor deslocado em −30°
Fig. 21c: Matiz deslocado, mas luminosidade CIELAB (L*) mantida como no original
Fig. 21c: Matiz deslocado, mas luminosidade CIELAB (L*) mantida como no original
Fig. 21d: Matiz deslocado no espaço de cores CIELch(ab) em
Fig. 21d: Matiz deslocado no espaço de cores CIELch(ab) em −30°

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.

Outros modelos de cores em coordenadas cilíndricas

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.

Fórmulas de conversão de cores

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.

Para RGB

HSL para RGB

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:

Alternativa de HSL para RGB

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):

HSV para RGB

Gráfico comparando componentes RGB e parâmetros HSV
Fig. 24. Representação gráfica das coordenadas RGB para determinados valores HSV. A equação mostra a origem dos valores assinalados no eixo vertical.

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:

Alternativa de HSV para RGB

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):

HSI para RGB

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:

Luma, croma e matiz para RGB

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):

Interconversão

HSV para HSL

Dada uma cor com matiz , saturação e valor ,

HSL para HSV

Dada uma cor com matiz , saturação e luminosidade ,

A partir de RGB

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:

Amostras de cores

Passe o cursor sobre as amostras abaixo para ver os valores R, G e B de cada amostra em uma dica de ferramenta.

HSL

H = 180° · H = 0°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 210° · H = 30°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 240° · H = 60°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 270° · H = 90°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 300° · H = 120°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 330° · H = 150°
LS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0

HSV

H = 180° · H = 0°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 210° · H = 30°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 240° · H = 60°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 270° · H = 90°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 300° · H = 120°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0
H = 330° · H = 150°
VS
13/41/21/401/41/23/41
1
7/8
3/4
5/8
1/2
3/8
1/4
1/8
0

Ver também

Notas

  1. ↑ No artigo de Joblove e Greenberg (1978) que apresentou o HSL pela primeira vez, os autores chamaram a luminosidade HSL de «intensidade», a saturação HSL de «croma relativo», a saturação HSV de «saturação» e o valor HSV de «valor». Eles descreveram e compararam, cuidadosa e inequivocamente, três modelos: matiz/croma/intensidade, matiz/croma relativo/intensidade e matiz/valor/saturação. Infelizmente, autores posteriores foram menos rigorosos, e o uso atual desses termos é inconsistente e frequentemente enganoso.
  2. ↑ O nome hexcone, para pirâmide hexagonal, foi cunhado em Smith (1978) e se consolidou.
  3. ↑ Por exemplo, um estudo de 1982 de Berk et al. constatou que, depois de aprenderem ambos os sistemas, usuários eram melhores em descrever cores em termos de HSL do que de coordenadas RGB, mas eram ainda muito melhores ao descrevê-las segundo o modelo CNS em linguagem natural (que usa nomes como «amarelo-esverdeado acinzentado muito escuro» ou «roxo azulado forte médio»). Isso, porém, não deve ser tomado como verdade absoluta: um estudo de 1987 de Schwarz et al. constatou que usuários conseguiam igualar cores mais rapidamente usando controles RGB do que controles HSL; um estudo de 1999 de Douglas e Kirkpatrick constatou que, para a velocidade de igualação pelos usuários, o retorno visual da interface importava mais do que o modelo de cores específico empregado.
  4. ↑ «Claramente, se a aparência das cores deve ser descrita de maneira sistemática e matemática, as definições dos fenômenos descritos precisam ser precisas e universalmente acordadas.»
  5. ↑ Na formulação de Levkowitz e Herman, R, G e B representam as tensões aplicadas aos canhões de um monitor CRT, que poderiam ter máximos diferentes e, portanto, cuja gama cartesiana poderia ser uma caixa com quaisquer dimensões desiguais. Outras definições normalmente usam valores inteiros no intervalo [0, 255], armazenando o valor de cada componente em um byte. Por conveniência, definimos a gama RGB como um cubo unitário, pois isso simplifica e esclarece a matemática. Além disso, em geral, HSL e HSV são hoje calculados diretamente a partir de R′, G′ e B′ com correção gama — por exemplo, no espaço sRGB —, mas, quando os modelos foram desenvolvidos, poderiam ter sido transformações de um espaço RGB linear. Os primeiros autores não abordam a correção gama, com exceção de Alvy Ray Smith, que afirma claramente: «Assumiremos que um monitor RGB é um dispositivo linear»; assim, ele projetou o HSV usando RGB linear. Omitiremos os apóstrofos, e os rótulos R, G e B devem ser entendidos como os três atributos do espaço RGB de origem, tenha ele ou não correção gama.
  6. ↑ Usar aqui o termo croma não apenas concorda com o artigo original de Joblove e Greenberg (1978), como também está de acordo com o sentido próprio da definição psicométrica do termo. Alguns modelos denominam esse atributo saturação — por exemplo, o modo de mesclagem «Saturation» do Adobe Photoshop —, mas esse uso é ainda mais confuso do que o emprego do termo em HSL ou HSV, especialmente quando duas definições substancialmente diferentes são usadas lado a lado.
  7. 1 2 A maioria dos artigos e livros de computação gráfica que discutem HSL ou HSV apresenta uma fórmula ou algoritmo que os descreve formalmente. As fórmulas a seguir combinam elementos dessas fontes. Ver, por exemplo, Agoston (2005) ou Foley (1995).
  8. ↑ Hanbury e Serra (2002) dedicam considerável esforço a explicar por que aquilo que chamamos aqui de croma pode ser escrito como max(R, G, B) − min(R, G, B) e a mostrar que esse valor é uma seminorma. Eles reservam o nome croma para a norma euclidiana no plano de cromaticidade (nosso C2) e chamam essa distância hexagonal de saturação, como parte de seu modelo IHLS.
  9. ↑ A seguir, a multiplicação do matiz por 60° — isto é, 360°/6 — pode ser entendida como o análogo, na geometria hexagonal, da conversão de radianos para graus, uma multiplicação por 360°/2π: a circunferência de um círculo unitário é 2π; a circunferência de um hexágono unitário é 6.
  10. ↑ Para uma discussão mais específica do termo luma, ver Charles Poynton (2008). Ver também especificações do espaço RGB. O Photoshop usa exclusivamente os coeficientes NTSC em seu modo de mesclagem «Luminosity», independentemente do espaço de cores RGB envolvido.
  11. ↑ As nove primeiras cores desta tabela foram escolhidas manualmente, e as dez últimas foram escolhidas aleatoriamente.
  12. ↑ Por exemplo, uma ferramenta do Illustrator CS4 e a ferramenta web relacionada da Adobe, Kuler, permitem que os usuários definam esquemas de cores com base em relações HSV, mas com um círculo de matizes modificado para corresponder melhor ao modelo RYB tradicionalmente usado por pintores. As ferramentas web ColorJack, Color Wizard e ColorBlender selecionam esquemas de cores com referência a HSL ou HSV.
  13. ↑ Experimente pesquisar na web por «[nome do framework] color picker» para exemplos de determinado framework, ou «JavaScript color picker» para resultados gerais.
  14. ↑ O ArcGIS chama seus gradientes de símbolos cartográficos de «color ramps». Versões atuais do ArcGIS podem usar CIELAB em vez de HSV para defini-los.
  15. ↑ Por exemplo, a primeira versão do Photoshop tinha uma ferramenta baseada em HSL; ver "Photoshop hue/saturation" no GUIdebook para capturas de tela.
  16. ↑ A documentação do Photoshop explica, por exemplo, que o modo «Luminosity» cria uma cor resultante com o matiz e a saturação da cor de base e a luminância da cor de mesclagem.
  17. ↑ O modo no estilo HSL (com uma luminosidade Rec. 601) também é padronizado em CSS a partir de documentação contribuída pela Adobe e pela Canon. O GIMP 2.10 passou de sua antiga geometria HSV para LCH(ab).
  18. ↑ O modelo de Ohta et al. possui os parâmetros I1 = (R + G + B)/3, I2 = (R − B)/2, I3 = (2G − R − B)/4. I1 é igual ao nosso I, e I2 e I3 são semelhantes, respectivamente, aos nossos β e α, exceto porque (a) enquanto α aponta na direção de R no «plano de cromaticidade», I3 aponta na direção de G, e (b) os parâmetros têm uma escala linear diferente que evita o √3 de nosso β.
  19. ↑ A maioria das desvantagens listadas abaixo é mencionada em Poynton (1997), embora apenas como afirmações, sem exemplos.
  20. ↑ Alguns pontos desse cilindro ficam fora da gama.

Referências

  1. ↑ Ver espaço de cores absoluto.
  2. 1 2 Levkowitz e Herman (1993)
  3. ↑ Wilhelm Ostwald (1916). Die Farbenfibel. Leipzig.
  4. ↑ Wilhelm Ostwald (1918). Die Harmonie der Farben. Leipzig.
  5. ↑ US patente 4694286, Bergstedt, Gar A., "Apparatus and method for modifying displayed color images", publicado em 1987-09-15, atribuído a Tektronix, Inc
  6. ↑ Toby Berk; Arie Kaufman; Lee Brownston (agosto de 1982). «A human factors study of color notation systems for computer graphics». Communications of the ACM (em inglês). 25 (8): 547–550. doi:10.1145/358589.358606Acessível livremente
  7. ↑ Michael W. Schwarz; William B. Cowan; John C. Beatty (abril de 1987). «An experimental comparison of RGB, YIQ, LAB, HSV, and opponent color models». ACM Transactions on Graphics (em inglês). 6 (2): 123–158. doi:10.1145/31336.31338Acessível livremente
  8. ↑ Sarah A. Douglas; Arthur E. Kirkpatrick (abril de 1999). «Model and representation: the effect of visual feedback on human performance in a color picker interface». ACM Transactions on Graphics (em inglês). 18 (2): 96–127. doi:10.1145/318009.318011Acessível livremente
  9. ↑ A patente original dessa ideia foi de Georges Valensi, em 1938:
    FR patente 841335, Valensi, Georges, "Procédé de télévision en couleurs", publicado em 1939-05-17, emitido em 1939-02-06
    US patente 2375966, Valensi, Georges, "System of television in colors", publicado em 1945-05-15
  10. 1 2 3 4 Smith (1978)
  11. 1 2 3 4 Joblove e Greenberg (1978)
  12. ↑ Maureen C. Stone (agosto de 2001). "A Survey of Color for Computer Graphics". Curso na SIGGRAPH 2001.
  13. ↑ Ware Myers (julho de 1979). «Interactive Computer Graphics: Flying High-Part I». Computer (em inglês). 12 (7): 8–17. doi:10.1109/MC.1979.1658808. Cópia arquivada em 18 de abril de 2021
  14. ↑ N. Magnetat-Thalmann; N. Chourot; D. Thalmann (março de 1984). «Colour Gradation, Shading and Texture Using a Limited Terminal». Computer Graphics Forum (em inglês). 3: 83–90. doi:10.1111/j.1467-8659.1984.tb00092.x
  15. ↑ Computer Graphics Staff (agosto de 1979). «Status report of the graphic standards planning committee». ACM SIGGRAPH Computer Graphics (em inglês). 13 (3): 1–10. doi:10.1145/988497.988498
  16. 1 2 3 4 5 6 7 8 Fairchild (2005), pp. 83–93
  17. ↑ Kuehni (2003)
  18. ↑ Standard Terminology of Appearance E284 (em inglês). [S.l.]: ASTM. 2009
  19. ↑ International Lighting Vocabulary (em inglês) 4 ed. [S.l.]: CIE e IEC. 1987. ISBN 978-3-900734-07-7. Consultado em 5 de fevereiro de 2010. Cópia arquivada em 27 de fevereiro de 2010
  20. ↑ Poynton (1997)
  21. ↑ Sharma, G. (2003). Digital Color Imaging Handbook (em inglês). Boca Raton, FL: CRC Press. ISBN 978-0-8493-0900-7
  22. ↑ Hanbury e Serra (2002)
  23. 1 2 Hanbury (2008)
  24. ↑ Patrick Lambert; Thierry Carron (1999). «Symbolic fusion of luminance-hue-chroma features for region segmentation». Pattern Recognition (em inglês). 32 (11). 1857 páginas. Bibcode:1999PatRe..32.1857L. doi:10.1016/S0031-3203(99)00010-2
  25. ↑ Rafael C. Gonzalez e Richard Eugene Woods (2008). Digital Image Processing, 3.ª ed. Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-168728-X. pp. 407–413.
  26. ↑ Poynton (1997). "What weighting of red, green and blue corresponds to brightness?"
  27. ↑ Bruce Lindbloom (25 de setembro de 2001). Arquivado em 2011-07-07 no Wayback Machine "Re: Luminosity channel...".
  28. 1 2 3 4 Cheng et al. (2001)
  29. ↑ Tantek Çelik, Chris Lilley e L. David Baron (julho de 2008). "CSS3 Color Module Level 3".
  30. ↑ «Working with color ramps» (em inglês). Environmental Systems Research Institute. Janeiro de 2008. Consultado em 30 de agosto de 2017
  31. ↑ Bradley, John (1994). «The HSV Modification Tools». John's World of XV and Other Cool Stuff (em inglês)
  32. ↑ Sinkel, Kiril (janeiro de 2010). «User Guide for Picture Window and Picture Window Pro Digital Light & Color» (PDF) (em inglês). Cópia arquivada (PDF) em 12 de maio de 2014
  33. ↑ «Blending Modes». Photoshop User Guide (em inglês). Adobe Systems Incorporated. 15 de fevereiro de 2017
  34. ↑ «Compositing and Blending Level 1». www.w3.org (em inglês)
  35. ↑ «GIMP's LCH Blend Modes». Nine Degrees Below (em inglês)
  36. ↑ John Kender (1976). "Saturation, hue and normalized color". Carnegie Mellon University, Computer Science Dept. Pittsburgh, PA.
  37. ↑ Yu-Ichi Ohta; Takeo Kanade; Toshiyuki Sakai (1980). «Color information for region segmentation». Computer Graphics and Image Processing (em inglês). 13 (3). 222 páginas. doi:10.1016/0146-664X(80)90047-7
  38. ↑ Ffrank Perez; Christof Koch (1994). «Toward color image segmentation in analog VLSI: Algorithm and hardware» (PDF). International Journal of Computer Vision (em inglês). 12: 17–42. doi:10.1007/BF01420983
  39. ↑ Brewer, Cynthia A. (1999). «Color Use Guidelines for Data Representation». Proceedings of the Section on Statistical Graphics (em inglês). Alexandria, VA: American Statistical Association. pp. 55–60. Consultado em 5 de fevereiro de 2010. Cópia arquivada em 7 de agosto de 2009
  40. ↑ Fisher, Nicholas (1993). Statistical Analysis of Circular Data (em inglês). [S.l.]: Cambridge University Press. ISBN 978-0-521-35018-1. doi:10.1017/CBO9780511564345
  41. ↑ Hanbury, Allan (2003). Circular Statistics Applied to Colour Images. 8th Computer Vision Winter Workshop (em inglês). CiteSeerX 10.1.1.4.1381Acessível livremente
  42. ↑ Poynton (1997). "What are HSB and HLS?"

Bibliografia

Ligações externas