2

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

ただし、このページでは以下の式が示されています(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 )
}

さらに悪いことに、このウィキペディアのページには次のように記載されています。

CIELUVは、彩度成分を彩度と色相の相関関係に置き換えて、円筒形(CIELCH)で表現することもできます。

これは、色相を決定する前に、CIE L * a *b*を最初にCIEL* u *v*に変換する必要があることを意味すると結論付けることができます。

誰かがこれに光を当てることができますか?

4

1 に答える 1

2

直交座標a、bを極座標C、hに変換します

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

Cは彩度、hは色相角です。

于 2012-09-01T00:18:41.700 に答える