Question

easyrgb donne la formule suivante pour déterminer la teinte (et chroma) d'une CIE L * A * B * Couleur:

var_H = arc_tangent( CIE-b*, CIE-a* )  //Quadrant by signs

if ( var_H > 0 ) var_H = ( var_H / PI ) * 180
else             var_H = 360 - ( abs( var_H ) / PI ) * 180

CIE-L* = CIE-L*
CIE-C* = sqrt( CIE-a* ^ 2 + CIE-b* ^ 2 )
CIE-H° = var_H

Cependant, il donne la formule ci-dessous sur Cette page (utilisé par l'algorithme Delta CMC):

CieLab2Hue( var_a, var_b )          //Function returns CIE-H° value
{
   var_bias = 0
   if ( var_a >= 0 && var_b == 0 ) return 0
   if ( var_a <  0 && var_b == 0 ) return 180
   if ( var_a == 0 && var_b >  0 ) return 90
   if ( var_a == 0 && var_b <  0 ) return 270
   if ( var_a >  0 && var_b >  0 ) var_bias = 0
   if ( var_a <  0               ) var_bias = 180
   if ( var_a >  0 && var_b <  0 ) var_bias = 360
   return ( rad2deg( atan( var_b / var_a ) ) + var_bias )
}

Pour aggraver les choses, Cette page Wikipedia indique les éléments suivants:

CIELUV peut également être exprimé sous forme cylindrique (Cielch), avec le composants de chromaticité remplacés par des corrélats de chroma et de teinte.

On pourrait conclure que cela signifie que CIE L * A * B * doit être converti pour la première fois en CIE L * U * V * avant que la teinte puisse être déterminée.

Quelqu'un peut-il perdre une lumière sur cela?

Était-ce utile?

La solution

Convertir des coordonnées orthogonales A, B sur les coordonnées polaires C, H

 C = sqrt (a * a + b * b)
 h = arctan (b/a)

c est le chroma, H est l'angle de teinte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top