首页 理论教育 RGB与HSL颜色系统的转换方法介绍

RGB与HSL颜色系统的转换方法介绍

时间:2023-06-29 理论教育 版权反馈
【摘要】:把RGB色彩模型系统变换为HSL系统称为HSL正变换;将HSL系统变换为RGB系统称为HSL逆变换。由于RGB与HSL的颜色空间并不是完全对等的,因此从RGB到HSL的变换有多种变换方法,本书介绍下面两种最常见的方法。把RGB转换为HSL颜色系统。

RGB与HSL颜色系统的转换方法介绍

遥感数字图像中,计算机对每一幅影像的色彩存储一般使用RGB模型。对一个像素,它分别存储该像素对应的RGB分量。例如对某一像素(255,255,0),它用三个字节分别存储255,255,0;显示的时候显示器也使用RGB模型,根据加色原理,该像素显示的为标准的黄色。

但是当图像显示在显示器上时,在人眼观察这个黄色像素时,人的大脑却不使用RGB模型,而是从色调、亮度、饱和度去认识和感知这个像素,这就是人们不自觉地在使用孟塞尔颜色体系。加色原理与孟塞尔体系所用的参数是不同的,因此为了方便人们对图像中颜色的修改,需要进行RGB模型与HSL模型之间的相互转换。

把RGB色彩模型系统变换为HSL系统称为HSL正变换;将HSL系统变换为RGB系统称为HSL逆变换。当彩色合成图像的各个波段之间的相关性很高时,会使合成图像的饱和度偏低;如果色调变化不大,那么图像的视觉效果就比较差。此时人们会按视觉效果改变和调整图像的饱和度、亮度,然后再显示出来。这样图像需要经历三个过程:①从RGB到HSL的正变换;②人们对HSL中的H、S、L的改变;③HSL逆变换,还原为RGB,进行存储并显示在屏幕中。由于RGB与HSL的颜色空间并不是完全对等的,因此从RGB到HSL的变换有多种变换方法,本书介绍下面两种最常见的方法。

1.球体变换

RGB到HSL的转换算法如下:

设RGB的颜色为(LR,LG,LB),设Lmax为LR,LG,LB的最大值,Lmin为LR,LG,LB的最小值,LR,LG,LB取值区间为[0,1];

(1)亮度L的计算公式:L=(Lmax+Lmin)/2

特殊情形,当Lmax=Lmin,此时有Lmax=LR=LG=LB=Lmin,表明颜色为灰色,此时S=0,H不表示任何颜色。

(2)饱和度S的计算,分两种情况:

若L≤0.5,则S=(Lmax-Lmin)/(Lmax+Lmin

当L>0.5,则S=(Lmax-Lmin)/(2-Lmax-Lmin

(3)色调H的计算公式如下,分三种情形:

当Lmax=LR时,H=60×(LG-LB)/(Lmax+Lmin),颜色处于黄色和品红之间;

当Lmax=LG时,H=120+60×(LB-LR)/(Lmax+Lmin),颜色处于青色与黄色之间;

当Lmax=LB时,H=240+60×(LR-LG)/(Lmax+Lmin),颜色处于品红和青色之间;(www.xing528.com)

如果上述计算H出现负值,则增加360,因为H为周期函数。

【例5-1】把RGB(0,128,128)转换为HSL颜色系统。

【解】(1)先把RGB(0,128,128)转化为[0,1]区间的取值,即:

RGB(0/256,128/256,128/256)=RGB(0,0.5,0.5);

(2)根据公式,计算亮度L∶L=(Lmax+Lmin)/2=(0.5+0)/2=0.25;

因为L≤0.5,所以1=,表示纯色;

因为Lmax=LG,所以

查看颜色圆锥体,此时颜色为青色。故RGB(0,128,128)=HSL(180,1,0.25)。

2.圆柱体变换

RGB到HSL的转换算法如下:设RGB的颜色为(LR,LG,LB),

(2)饱和度S的计算:

(3)色调H的计算公式如下:

通过以上算法可以把RGB模式转换为HSL模式,从而实现对色彩特性的定量表示。当然,对上述公式求逆运算,就是HSL逆变换,即将整个HSL图像变换回原始的RGB空间中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈