# Teinte Saturation Valeur

Le modèle TSV pour Teinte Saturation Valeur ou TSL pour Teinte Saturation Luminosité (en anglais HSV pour Hue Saturation Value ou HSB pour Hue Saturation Brightness), est une interface humaine pour la gestion des couleurs en informatique.
Il fait partie d'une famille de systèmes basés sur trois composantes définies par une approche psychologique et perceptuelle de la couleur : teinte, saturation et valeur, calculées à partir des valeurs de chaque primaire rouge, vert et bleu des écrans informatiques en couleurs.

## Description des composantes
### La teinte

La teinte est codée suivant l'angle qui lui correspond sur le cercle des couleurs :
* 0° ou 360° : rouge ;
* 60° : jaune ;
* 120° : vert ;
* 180° : cyan ;
* 240° : bleu ;
* 300° : magenta.

### La saturation

La saturation est l'« intensité » de la couleur :
* elle varie entre 0 et 100 % ;
* elle est parfois appelée « pureté » ;
* plus la saturation d'une couleur est faible, plus l'image sera « grisée » et plus elle apparaîtra fade, il est courant de définir la « désaturation » comme l'inverse de la saturation ;

### La valeur

La valeur est la « brillance » de la couleur :
* elle varie entre 0 et 100 % ;
* plus la valeur d'une couleur est faible, plus la couleur est sombre. Une valeur de 0 correspond au noir.

## Histoire

Alvy Ray Smith a défini le modèle TSV en 1978. C'est une transformation non linéaire simple de l'espace de couleur RVB des ordinateurs, lui même non linéaire et en principe indexé sur l'espace colorimétrique linéaire CIE XYZ. Elle peut être utilisée en progression colorique.

## Visualisation en TSV

Le modèle TSV est particulièrement utilisé dans les applications graphiques. Dans beaucoup de contextes applicatifs, un utilisateur est amené à choisir une couleur qui sera appliquée à un élément. Utilisée de cette manière, la roue TSV est souvent employée. Ainsi, la Teinte est représentée par une région circulaire ; un triangle séparé peut être utilisé pour représenter la Saturation et la Valeur. Typiquement, l'axe vertical du triangle représente la Saturation, alors que l'axe horizontal représente la Valeur. De cette manière, une couleur peut être choisie d'abord en sélectionnant la Teinte sur la partie circulaire puis la Saturation et la Valeur sur le triangle.

## Transformation entre TSV et RVB

    $t\in [0,360[$
    $s,v,r,g,b\in [0,1]$
r, g, b désignent respectivement les coordonnées RVB,
t, s, v désignent respectivement les coordonnées TSV.
max la plus grande valeur entre r, g et b ; et min la plus petite.

### Conversion de RVB vers TSV

    $t={\begin{cases}0,&{\mbox{si }}\max =\min \\(60^{\circ }\times {\frac {g-b}{\max -\min }}+360^{\circ })\;{\bmod {\;}}360^{\circ },&{\mbox{si }}\max =r\\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{sinon}}\end{cases}}$
    $v=\max \,$

### Conversion de TSV vers RVB

    $t_{i}=\left\lfloor {\frac {t}{60}}\right\rfloor \mod 6$
    $f={\frac {t}{60}}-t_{i}$
    $l=v\times (1-s)\,$
    $m=v\times (1-f\times s)\,$
    $n=v\times (1-(1-f)\times s)\,$
    $(r,g,b)={\begin{cases}(v,n,l),&{\mbox{si }}t_{i}=0\\(m,v,l),&{\mbox{si }}t_{i}=1\\(l,v,n),&{\mbox{si }}t_{i}=2\\(l,m,v),&{\mbox{si }}t_{i}=3\\(n,l,v),&{\mbox{si }}t_{i}=4\\(v,l,m),&{\mbox{si }}t_{i}=5\\\end{cases}}$

## Couleurs complémentaires

On définit deux couleurs comme complémentaires si, mélangées, elles produisent un gris. Soit une couleur (t, s, v) dans l'espace de couleur TSV, il existe un complément (t', s', v') tel que quand (t, s, v) et (t', s', v') sont mélangées en proportions égales, la saturation de la couleur produite vaut 0. Alors,
    $t'={\begin{cases}t-180,&{\mbox{si }}t\geq 180\\t+180,&{\mbox{si }}t<180\end{cases}}$
    $s'={v\times s \over v\times (s-1)+1}$
    $v'=v\times (s-1)+1$