Modelo de color HSV

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Espacio de color HSV como una rueda de color.

El modelo HSV (del inglés Hue, Saturation, Value – Matiz, Saturación, Valor), también llamado HSB (Hue, Saturation, Brightness – Matiz, Saturación, Brillo), define un modelo de color en términos de sus componentes.

Historia[editar]

El modelo HSV fue creado en 1978 por Alvy Ray Smith. Se trata de una transformación no lineal del espacio de color RGB, y se puede usar en progresiones de color. Nótese que HSV es lo mismo que HSB pero no que HSL o HSI.

Uso[editar]

250pxCono de colores del espacio HSV.

Es común que deseemos elegir un color adecuado para alguna de nuestras aplicaciones, cuando es así resulta muy útil usar la ruleta de color HSV. En ella el matiz se representa por una región circular; una región triangular separada, puede ser usada para representar la saturación y el valor del color. Normalmente, el eje horizontal del triángulo denota la saturación, mientras que el eje vertical corresponde al valor del color. De este modo, un color puede ser elegido al tomar primero el matiz de una región circular, y después seleccionar la saturación y el valor del color deseados de la región triangular.

Características[editar]

Constituyentes en coordenadas cilíndricas:

Matiz[editar]

Se representa como un grado de ángulo cuyos valores posibles van de 0 a 360° (aunque para algunas aplicaciones se normalizan del 0 al 100%). Cada valor corresponde a un color. Ejemplos: 0 es rojo, 60 es amarillo y 120 es verde.

De forma intuitiva se puede realizar la siguiente transformación para conocer los valores básicos RGB:

Disponemos de 360 grados dónde se dividen los 3 colores RGB, eso da un total de 120º por color, sabiendo esto podemos recordar que el 0 es rojo RGB(1, 0, 0), 120 es verde RGB(0, 1, 0) y 240 es azul RGB(0, 0, 1). Para colores mixtos se utilizan los grados intermedios, el amarillo, RGB(1, 1, 0) está entre rojo y verde, por lo tanto 60º. Se puede observar como se sigue la secuencia de sumar 60 grados y añadir un 1 o quitar el anterior:

  • 0º = RGB(1, 0, 0)
  • 60º = RGB(1, 1, 0)
  • 120º = RGB(0, 1, 0)
  • 180º = RGB(0, 1, 1)
  • 240º = RGB(0, 0, 1)
  • 300º = RGB(1, 0, 1)
  • 360º = 0º

Esta transformación permite saber los tonos de matices de colores puros que contienen alguna cantidad (o ninguna) de los colores R, G y B. Para el color blanco se puede poner cualquier color y saturación, siempre que se establezca el valor (de luminosidad) máximo. Asimismo, para el color negro se puede poner cualquier color y saturación, siempre que se ponga un valor de 0.

Saturación[editar]

Se representa como la distancia al eje de brillo negro-blanco. Los valores posibles van del 0 al 100%. A este parámetro también se le suele llamar "pureza" por la analogía con la pureza de excitación y la pureza colorimétrica de la colorimetría. Cuanto menor sea la saturación de un color, mayor tonalidad grisácea habrá y más decolorado estará. Por eso es útil definir la insaturación como la inversa cualitativa de la saturación.


Graduaciones de saturación en el modelo HSV
matiz 100% puro 75% de saturación saturación media 25% de saturación 0 de saturación

Para calcular la saturación, simplemente divida el croma por el máximo croma para ese valor.

\begin{align}
  S_{HSV} &=
    \begin{cases}
      0,           &\mbox{if } C = 0 \\
      \frac{C}{V}, &\mbox{otherwise}
    \end{cases} \\
\end{align}

Valor[editar]

Representa la altura en el eje blanco-negro. Los valores posibles van del 0 al 100%. 0 siempre es negro. Dependiendo de la saturación, 100 podría ser blanco o un color más o menos saturado.

Transformaciones[editar]

Transformación RGB a HSV[editar]

Sea MAX el valor máximo de los componentes (R, G, B), y MIN el valor mínimo de esos mismos valores, los componentes del espacio HSV se pueden calcular como:

H =
\begin{cases}
\mbox{no definido}, & \mbox{si } MAX = MIN \\
60^\circ \times \frac{G - B}{MAX - MIN} + 0^\circ, & \mbox{si } MAX = R \\ &\mbox{y } G \ge B \\
60^\circ \times \frac{G - B}{MAX - MIN} + 360^\circ, & \mbox{si } MAX = R \\ &\mbox{y } G < B \\
60^\circ \times \frac{B - R}{MAX - MIN} + 120^\circ, & \mbox{si } MAX = G \\
60^\circ \times \frac{R - G}{MAX - MIN} + 240^\circ, & \mbox{si } MAX = B
\end{cases}

S = 
\begin{cases}
0, & \mbox{si } MAX = 0 \\
1 - \frac {MIN} {MAX}, & \mbox{en otro caso}
\end{cases}

V = MAX \,

Transformación HSV a RGB[editar]


H_i = \left [ \frac{H}{60} \right ] \mbox{ mod } 6, \mbox{ }
f = \frac{H}{60} - H_i, \mbox{ }
p = V (1 - S), \mbox{ }
q = V (1 - f S), \mbox{ }
t = V (1 - (1 - f) S)


\mbox{si }H_i =
\begin{cases}
0, &R = V \\ &G = t \\ &B = p \\
1, &R = q \\ &G = V \\ &B = p \\
2, &R = p \\ &G = V \\ &B = t \\
3, &R = p \\ &G = q \\ &B = V \\
4, &R = t \\ &G = p \\ &B = V \\
5, &R = V \\ &G = p \\ &B = q \\
\end{cases}

Véase también[editar]

Enlaces externos[editar]