首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定CIE L*a*b*颜色色调的正确公式

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

Stack Overflow用户
提问于 2012-05-22 16:58:11
回答 1查看 7.9K关注 0票数 2

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

代码语言:javascript
复制
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算法使用):

代码语言:javascript
复制
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*应首先转换为CIE L*u*v*,然后才能确定色调。

有人能解释一下这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-01 00:18:41

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

代码语言:javascript
复制
 C = sqrt (a * a + b * b)
 h = arctan (b/a)

C是色度,h是色调角。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10706578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档