CIE1931-XYZ色度系统给定量研究色彩提供了国际通用标准,但无论是RGB色度系统,还是XYZ色度系统,都是不均匀的,即色彩空间中距离相同的两点,引起人的视觉差异却不同,某两种颜色会引起很大的视觉差异,而另外两种三刺激值差相同的颜色却可能引起的视觉差异很小。在实际应用中经常需要辨别样品颜色的差别,即色差的定量化表示,但CIE 1931-XYZ色度系统由于自身的缺陷,不能用于计算样品颜色的色差。为了解决这一问题,在经过大量的研究之后,CIE于1976年推荐了一种新的颜色空间及其色差计算公式,即CIE 1976-Lab。这是一种均匀的色彩空间,即在不同位置,不同方向上相等的几何距离在视觉上有对应相等的色差。 由于CIELAB和CIELUV没有明显的优劣,所以这两个颜色空间都经常被使用,如Photoshop就是使用CIELAB颜色空间的。
XYZ —> CIE-L*ab- var_X = X / ref_X //ref_X = 95.047 Observer= 2°, Illuminant= D65
- var_Y = Y / ref_Y //ref_Y = 100.000
- var_Z = Z / ref_Z //ref_Z = 108.883
- if ( var_X > 0.008856 ) var_X = var_X ^ ( 1/3 )
- else var_X = ( 7.787 * var_X ) + ( 16 / 116 )
- if ( var_Y > 0.008856 ) var_Y = var_Y ^ ( 1/3 )
- else var_Y = ( 7.787 * var_Y ) + ( 16 / 116 )
- if ( var_Z > 0.008856 ) var_Z = var_Z ^ ( 1/3 )
- else var_Z = ( 7.787 * var_Z ) + ( 16 / 116 )
- CIE-L* = ( 116 * var_Y ) - 16
- CIE-a* = 500 * ( var_X - var_Y )
- CIE-b* = 200 * ( var_Y - var_Z )
复制代码
CIE-L*ab —> XYZ
- var_Y = ( CIE-L* + 16 ) / 116
- var_X = CIE-a* / 500 + var_Y
- var_Z = var_Y - CIE-b* / 200
- if ( var_Y^3 > 0.008856 ) var_Y = var_Y^3
- else var_Y = ( var_Y - 16 / 116 ) / 7.787
- if ( var_X^3 > 0.008856 ) var_X = var_X^3
- else var_X = ( var_X - 16 / 116 ) / 7.787
- if ( var_Z^3 > 0.008856 ) var_Z = var_Z^3
- else var_Z = ( var_Z - 16 / 116 ) / 7.787
- X = ref_X * var_X //ref_X = 95.047 Observer= 2°, Illuminant= D65
- Y = ref_Y * var_Y //ref_Y = 100.000
- Z = ref_Z * var_Z //ref_Z = 108.883
复制代码 Lab色彩空间被设计用来接近人类视觉,它致力于感知均匀性。 在Lab空间中,L表示亮度,a和b表示颜色对立的维度。L值为0时色彩为黑色,L值接近100时为白色;a值表示色彩在红色和绿色之间的位置;b值表示色彩在蓝色和黄色之间的位置。在CIELAB模型中,a值大于0时表示红色,a值小于0时表示绿色,b值大于0时表示黄色。 则:白平衡时,可将RGB转化为Lab颜色空间,然后将a和b分别取均值,则a和b的值就是一个固定的值,同样适用某些场景下的白平衡处理。
|