# Modelo de color HSV

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

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

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

Constituyentes en coordenadas cilíndricas:

### Matiz

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º

### Saturación

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{aligned}S_{HSV}&={\begin{cases}0,&{\mbox{if }}C=0\\{\frac {C}{V}},&{\mbox{otherwise}}\end{cases}}\\\end{aligned}}$

### Valor

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
### Transformación RGB a HSV

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\geq 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

$H_{i}=\left\lfloor {\frac {H}{60}}\right\rfloor {\mbox{ mod }}6;H\leq 360$
$f=\left({\frac {H}{60}}{\mbox{ mod }}6\right)-H_{i}$
$p=V(1-S)$
$q=V(1-fS),{\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}}$

## Ejemplos

La siguiente tabla está basada en la representación de una sección del cono HSV, escogiéndose una tonalidad de 0° (= 360°) de coloraciones derivadas del rojo para este ejemplo. Se indica el valor en la columna vertical (de 0 a 100%) y la saturación en la fila horizontal. El nombre sugerido para cada color es una aproximación.
| 0% (valor) negro |
| 20% azabache | wengué |
| 40% plomo | ocre rojo | granate |
| 60% gris | secuoya | rojo indio | rojo sangre |
| 80% ceniza | palo rosa | terracota | lacre | escarlata |
| Saturación: $0\%$ 100% blanco | $20\%$ rosado | $40\%$ rosa coral | $60\%$ coral | $80\%$ rojo coral | $100\%$  rojo |
El siguiente ejemplo representa dos secciones del cono HSV, una tiene la tonalidad de 45° que corresponde a colores derivados del amarillo naranja (dorados) y la derecha tiene una tonalidad de 204° correspondiente a coloraciones azul-celestes.
| | | | | 0% (valor) negro |
| | | | negro dorado | 25% plomo | azul marino o de Prusia |
| | | marrón dorado | bistre | 50% gris | azul porcelana | añil o índigo |
| | ocre amarillo | dorado | arena o lino | 75% plateado | azul Alicia | azul acero | azul |
| $100\%$ ámbar o amarillo naranja | $75\%$ lúcuma o azafrán | $50\%$ jazmín | $25\%$ crema o marfil | Saturación: $0\%$ 100% (valor) blanco | $25\%$ celeste claro | $50\%$ celeste | $75\%$ celeste intenso | $100\%$ azur o cerúleo |