用于确定CIE L * A * B *颜色的色调的正确公式
-
13-12-2019 - |
题
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 )
}
.
以恶化问题,这个wikipedia page 说明:
CIELUV也可以以圆柱形(CIELCH)表示 色度分量由色度和色调相关替代。
可以得出结论,这意味着在可以确定色调之前,应首先转换为CIE L * U * V *的CIE L * A * B *。
任何人都可以脱掉这个吗?
解决方案
将正交坐标A,B转换为极坐标C,H
C = sqrt (a * a + b * b)
h = arctan (b/a)
.
c是色度,h是色调角。
不隶属于 StackOverflow