基于 CIE 的灰度化算法分析
在 RGB 色彩模型中,RGB 三个通道的相关性很大,因此可以将彩色图像从 RGB 色彩模型转换为 LAB 色彩模型
LAB颜色模型
Lab颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩
XYZ颜色空间
就是在RGB系统的基础上,用数学方法,选用三个理想的原色来代替实际的三原色, XYZ颜色空间的三个分量分别代表了颜色的亮度(Y)和色度(X和Z)。X表示红色和绿色之间的差异,Y表示亮度,Z表示蓝色和黄色之间的差异
REG ⇒ LAB
RGB颜色空间不能直接转换为Lab颜色空间,需要借助XYZ颜色空间,把RGB颜色空间转换到XYZ颜色空间,之后再把XYZ颜色空间转换到Lab颜色空间。
XYZ=0.4124530.2126710.0193340.3575800.7151600.1191930.1804230.0721690.950227⋅RGB1
⎩⎨⎧x=255×0.950456Xy=255Yz=255×1.088754Z2
fx={x1/37.787x+11616if x>0.008856if x≤0.0088563
fy={y1/37.787y+11616if y>0.008856if y≤0.0088564
fz={z1/37.787z+11616if z>0.008856if z≤0.0088565
L={116fy−16903fyif y>0.008856if y≤0.0088566
a=500fx−fy7
b=200fy−fz8
L通道灰度化
对于转换后得到的L、a、b 三个分量,将a通道和b通道的值置零,然后将L分量的值映射到灰度图像的值中得到灰度图像
代码实现
引入color-convert的包
将彩色图像的RGB三个分量的加权平均值作为输出图像的灰度值 代码实现