RGB para o HSV

texto retirado da tese de Everest Mathias

>>>>

O espaço de cor HSV é uma forma natural e intuitiva para formação das cores, assim como o CIE-LAB e CIE-LUV. A transformação do RGB para o HSV não é linear, mas tem a vantagem de que o processo de reversão e converão ao RGB ser facilmente realizado.

Para fazer a transformação usa-se o seguinte algoritmo, onde os valores RGB devem ser normalizados, isto é, devem estar entre um valor mínimo zero e um máximo de um:

//Primeiro calcule os valores máximos e mínimos:

max = máximo(R,G,B), min = mínimo(R,G,B)

//depois os valores de saturação e brilho:

V = max , S = (max - min) / max

//ai passe a calcular as cores ou H:

if S = 0 /* H passa a ser irrelevante, a cor no HSV será : (0,0,V)*/

else

R1 = (R-min) / (max-min)

G1 = (G-min) / (max-min)

B1 = (B-min) / (max-min)

if R1 = max , H = G1 - B1

else if G1 = max , H = 2 + B1 - R1

else if B1 = max , H = 4 + R1 - G1

//(converte-se H em graus)

H = H*60

//usa-se H variando de 0 a 360° , S e V variando entre 0 e 1

if H < 0 , H=H+360

// a cor no HSV será : (H,S,V)*/

 

Comparação entre os espaços

A tabela 1, resume as propriedades observadas na literatura, entre o espaço de cor RGB e os espaços OPP, HSV e LUV , e o tipo de transformação usada para cada espaço. O símbolo * significa que a inversão apesar de não ser linear é obtida com facilidade.

Tabela 1 - Comparação entre as propriedades dos espaços de cor

Atributos

RGB

OPP

HSV

LUV

Uniforme

N

N

S

N

Compacto

N

N

S

N

Completo

S

S

S

S

Natural

N

N

S

S

Transf. Linear

-

S

N*

N