文章目录
RGB、HSV和HSI颜色空间模型及表示方式
RGB 的颜色空间:该颜色空间主要用于计算机图形学中,表示每个像素具有 R、G、B 三种颜色分量,每个分量均为 [0,255] 的大小,以三个分量为坐标轴,构建一个三维颜色空间。如下图所示。
由图可知:[0,0,0]:纯黑色; [255,255,255]:纯白色; [255,0,0]:纯红色; [0,255,0]:纯绿色; [0,0,255]:纯蓝色。
HSV的颜色空间
这个颜色模型中参数分别是:色调(H),饱和度(S),明度(V)。
- 色调(H):用角度来度量,取值范围为 [0°,360°],从红色开始按逆时针方向计算,红色为 0°,绿色为 120°,蓝色为 240°。它们的补色是:黄色为 60°,青色为 180°,品红为 300°。
- 饱和度(S):饱和度 S 表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果,其中光谱色所占的比例越大,颜色接近光谱色的成都越高,颜色的饱和度也就越高。饱和度越高,颜色则深而艳。光谱色的白光成分为 0,饱和度达到最高。通常取值范围为 [0%,100%],值越大,颜色越饱和。
- 明度(V):明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。同城取值为[0%,100%]。与光强度没有直接的联系。
HSV 模型的三维表示从 RGB 立方体演化而来。设想从 RGB 沿着立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿着垂直轴测量。
HSV 对于用户来说是一种直观的颜色模型。例如,要得到一种彩色模型,我们先指定彩色角 H,并让 A=S=1,然后我们通过向其中加入黑色和白色得到我们需要的颜色。增加黑色可以减小 V 而 S 不变,增加白色可以减小 S 而 V 不变。例如,要得到深蓝色,V=0.4,S=1,H=240;
HSI的颜色空间
HSI,也可以叫 HSL(Hue−Saturation−Intensity(Lightness)),其类似与 HSV 颜色空间模型。
- 色调(H),饱和度(S):与 HSV 颜色模型的概念是一样的。颜色空间任一点距离 I 的距离。
-
强度(I):对应成像亮度和图像灰度,是颜色的明亮程度。这个分量可以从图片彩色信息(色调和饱和度)里消去,使得 HSI 模型成为开发基于彩色描述的图像处理方法的良好工具,而这种彩色描述对于人来说是自然而直观的。
注意:当强度 I=0 时,色调、饱和度 S 无定义;当 S=0 时,色调 H 无定义。
HSV与HSI颜色空间模型的区别
HSI 和 HSV 的颜色模型比较接近,它们用来描述颜色相对于 RGB 等模型显得更加的自然。
在 HSI 和 HSV 中,H 都表示色相,该值范围为 [0,360],色相的意义就是光的波长,不同波长的光呈现了不同的色相。S 都表示饱和度,其本质为一束光可能有很多种不同波长的单色光构成,波长越多颜色越分散,而单色光构成的色彩纯净度就很高。
两种模型唯一不同的就是最后一个分量:在 HSI 中表示亮度 (Lightness/Luminance/Intensity);HSV 中 V 表示明度(Value/Brightness)。
上图中能很好的对比出 HSI 和 HSV 的区别:在 HSI 中,圆柱体外围是纯色,这圈纯色为与亮度 (L/I) 等于 1/2 的部位;而在 HSV 中,纯色对应于明度 (V) 等于 1 的部位。
在 HSL 中,饱和度分量总是对应等价的灰度值;而在 HSV 中,在极大值时候,饱和度从全饱和渐变话到白色,这可以认为是反直觉的。
在 HSL 中,亮度的跨越是从黑色经过色相到白色的;而在 HSV 中,V 分量是从黑色过渡到色相 (H) 的。
RGB、HSV和HSI的转换方法
RGB–>HSV
HSV --> RGB