视频监控之颜色模型——RGB、HSV模型

∥☆過路亽.° 提交于 2020-01-07 12:35:40

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

目前常用的颜色模型可分为两类,一类面向诸如彩色显示器或打印机之类的硬件设备,另一类面向以彩色处理为目的的应用,如动画中的彩色图形。面向硬件设备的最常用彩色模型是 RGB 模型,而面向彩色处理的最常用的模型是 HSV 模型,其中 H表示色调(Hue),S 表示饱和度(Saturation),V 表示亮度(Value)。

RGB颜色模型

RGB 颜色模型由红、绿、蓝三种基色组成,它大多用于 CRT 显示器和颜色光栅图形。这个模型基于笛卡儿坐标系统,3 个轴分别为 R,G,B。通过红、绿、蓝三种基色可以混合得到大多数的颜色。如下图所示:

坐标原点代表(0,0,0)黑色,而坐标点(1,1,1)代表白色。坐标轴上的顶点代表三个基色,而余下的顶点则代表第一个基色的补色。为方便表示,将立方体归一化为单位立方体,这样所有的 R,G,B 的值都在[0,1]中。根据这个模型,每幅彩色图像包括3个独立的基色平面,或者说可分解到 3 个平面上。反过来如果一幅图像可被表示为 3个平面,使用这个模型比较方便。

HSV颜色模型

在 HSV 模型中,亮度(V)是光作用于人眼时所引起的明亮程度的感觉,它与被观察物体的发光强度有关。色调(H)是当人眼看到一种或多种波长的光时所产生的彩色感觉,它反映颜色的种类,是决定颜色的基本特性,如红色、棕色就是指色调。饱和度(S)指的是颜色的纯度,即掺入白光的程度,或者说是指颜色的深浅程度,对于同一色调的彩色光,饱和度越深颜色越鲜明或说越纯。通常把色调和饱和度通称为色度。

HSV 模型的三维表示从 RGB 立方体演变而来。如果设想沿对角线从白色顶点向黑色顶点观察,可以看到如图 2.2 所示的立方体六边形外形。六边形的边界表示不同的色彩,用于 HSV 六棱锥的顶部。在六棱锥中,饱和度沿水平轴测量,而亮度值通

过六棱锥中心的垂直轴测量。

色调(H)用与水平轴之间的角度来表示,范围从 0 度到 360 度。六边形的顶点以60 度为间隔。黄色位于 60 度处,绿色在 120 度处而青色在 150 度处,与红色相对。相补的颜色互成 180 度。

饱和度(S)从 0 到 1 变化。在此模型中它表示成所选色彩的纯度与该色彩的最大纯度(S=l)的比率。当 S=0.5 时所选色彩的纯度为四分之一。当 S=0 时,只有灰度。

亮度值(V)从六边形顶点的 0 变化到顶部的 1,顶点表示黑色。在六边形顶部的颜色强度最大。当 V=1,S=l 时,有纯色彩。白色是 V=l 且 S=0 的点。

HSV 对多数用户来说是一个较直观的模型。从指定一种纯彩色开始,即指定色调H 且让 V=S=1,可以通过将白色或黑色加入到纯色彩中来描述所要的颜色。增加黑色,减小 V 而 S 保持不变。要得到深蓝色,V=0.4,S=1 且 H=240 度。同样,将白色加进所选的色彩中时,参数 S 减小而 V 保持不变。浅蓝色可以用 S=0.3,V=1 且 H=240 度来设定。添加一些黑色和白色,则同时减小 V 和 S。通常要有一个该模型的接口给出颜色板中 HSV 参数选择。结合明暗、色泽和色调等术语的颜色概念反映在 HSV 六边形的剖切面中。

HSV 颜色空间清晰地将颜色分为色度和亮度,而阴影不会改变背景的色度,故常用此颜色空间来进行阴影检测。

RGB 和 HSV 模型之间的转换

由于 RGB 和 HSV 相互转化的算法较为繁杂,所以本文给出用伪代码实现的方法。

RGB 转化到 HSV 的算法如下:

max=max(R,G,B)
min=min(R,G,B)
if R=max,H=(G-B)/(max-min)
if G=max,H=2+(B-R)/ (max-min)
if B=max,H=4+(R-G)/ (max-min)
H=H*60
If H<0,H=H+360
V=max(R,G,B)
S=(max-min)/max

HSV 转化到 RGB 的算法如下:

if S=0 R=G=B=V
else{
    H/=60
    i=INTEGER(H)
    f=H-i
    a=V*(1-S)
    b=V*(1-S*f)
    c=V*(1-S*(1-f))
    switch(i)
    case 0:R=V;G=c;B=a;
    case 1:R=b;G=V;B=a;
    case 2:R=a;G=V;B=c;
    case 3:R=a;G=b;B=V;
    case 4:R=c;G=a;B=V;
    case 0:R=V;G=a;B=b;
}

Enjoy~

相关标签TAGS:   rgb      hsv    

原创文章:转载出处: 视频监控之颜色模型——RGB、HSV模型

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!