Discussion:Teinte saturation luminosité

message: La condition évoquée est totalement inutile et qui plus est mal placée au niveau algorithmique (logique et dépendances des calculs).
\begin{align}
  S(original)(inutile) &=
    \begin{cases}
      0,           &\mbox{si } C = 0 \\
      \frac{C}{L}=0, &\mbox {si } C=0 \\
    \end{cases} \\
\end{align}
Lorsque l'on effectue une conversion du RVB en TSL, on doit avant tout trouver la luminosité, puis le chroma, et enfin en déduire S et/ou T selon les besoins.
La Saturation dépend d'une Luminosité différente de 0 et la Teinte dépend d'un Chroma différent de 0.
Une condition doit donc être placée à la fois dans le calcul de la saturation, et une autre différente dans celui de la teinte.
Soit L la Luminosité, C le Chroma
# \begin{align} L = max(R,V,B)\end{align}
# \begin{align} C = L - min(R,V,B) \end{align}
On peut ensuite procéder au calcul de S la Saturation ou de T la Teinte. 
Dans les deux cas, nous avons une condition obligatoire.
* \begin{align} S &= \begin{cases}0, &\mbox{si } L = 0 \\ \frac{C}{L}, &\mbox {sinon} \end{cases} \\ \end{align}
* \begin{align} T &= \begin{cases}\mathrm{inexistante}, &\mbox{si } C = 0 \\ \mathrm{CalculDeLaTeinte} &\mbox {sinon}\end{cases} \\ \end{align}
Ne reste plus qu'à ajouter le calcul de la teinte là où il y a inscrit "CalculDeLaTeinte".
Joanis Rouanet (discuter) 4 octobre 2014 à 18:40 (CEST)
thread_title:  Erreur algorithmique au niveau de la conversion RVB en TSL 

message: après avoir consulté cet article pour les besoins d'un programme, j'avais juste rapidement modifié une erreur dans les calculs, mais ma correction a apparemment été rejetée, donc je la rajoute ici :
dans les calculs de TLS depuis RVB, on a :
:\begin{align}
 (\frac{V - B}{C} + 6 \;) \bmod 6, \; &\mbox{si } M = R \\   
\end{align}
Or, le +6  est inutile. En effet, par definition, 
: \forall x, (x+6 )\bmod 6 = x\bmod 6 
A cela, je rajouterai les corrections suivantes, après test et correction de mon programme : 
- les deux autres valeurs possibles de la teinte doivent aussi être mises modulo 6, afin d'éviter des valeurs de teinte négatives, qui n'auraient aucun sens.
- toutes les autres sources que j'ai trouvées indiquent la luminosité comme la moyenne de M et m, et c'est effectivement ce qui donne les valeurs correctes de luminosité
- de la même manière, la formule de saturation ici correspond à la saturation dans le cas TSV et non pas TSL. J'ai la saturation TSL comme : 
:\begin{align}
{si \; Lumos} = 1 \; {ou} \; 0: \;   &  S_{TSL} = 0       
& {sinon} : S_{TSL} = \frac{Chroma}{1 - |2*Lumos - 1|} \\ 
\end{align}
ce qui donnerai, sur le code de la page :
""""" La variable C représente ce qu'on appelle le chroma.
:\begin{align}
  T^\prime &=
    \begin{cases}
      \mathrm{ind\acute efini},        &\mbox{si } C = 0 \\
      (\frac{V - B}{C}  \;) \bmod 6, &\mbox{si } M = R \\
      (\frac{B - R}{C} + 2, \;) \bmod 6,      &\mbox{si } M = V \\
      (\frac{R - V}{C} + 4, \;) \bmod 6,      &\mbox{si } M = B
    \end{cases} \\
  T        &= 60^\circ \times T^\prime
\end{align}
:L = \frac{M + m}{2}\,\!
:\begin{align}
  S &=
    \begin{cases}
      0,           &\mbox{si } L = 1 \\
      \frac{C}{1 - |2L - 1|}, &\mbox{sinon}
    \end{cases} \\
\end{align}
""""""""
Question de sources, j'ai d'abord le fait qu'après un certain nombre de tests avec des valeurs RVB et TLS données par photoshop sur des pixels aléatoires d'une image, c'est effectivement les formules qui marchent.
Sinon, j'ai :
http://www.rapidtables.com/convert/color/rgb-to-hsl.htm
et aussi les formules utilisées dans le module python colour  (https://pypi.python.org/pypi/colour)
Voila, en espérant que ça serve à quelqu'un.
--140.77.64.7 (discuter) 7 mars 2017 à 15:58 (CET)
thread_title:  erreurs de calculs