用于确定CIE L * a * b *颜色的色调的正确公式

时间:2012-05-22 16:58:11

标签: colors standards color-space

EasyRGB给出以下公式来确定CIE L * a * b *颜色的色调(和色度):

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

但是,它在this page(由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 )
}

为了使问题恶化,this Wikipedia page说明了以下内容:

  

CIELUV也可以用圆柱形式(CIELCH)表示   色度成分被色度和色调的相关性取代。

可以得出结论,这意味着在确定色调之前,应首先将CIE L * a * b *转换为CIE L * u * v *。

任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:2)

将正交坐标a,b转换为极坐标C,h

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

C是色度,h是色调角度。