• OpenCV——RGB和HSV颜色空间


    RGB颜色空间

    在RGB中,一幅图像有三个独立的图像平面或通道组成:红,绿,蓝(以及第四个通道透明度)。

     

    RGB颜色表


    资料:网络  ◇  编制:王践舜

     


     

     RGB(255,23,140)是光的三原色,也即红绿蓝Red、Green、Blue,它们的最大值是255,相当于100%。

     白色:rgb(255,255,255)

     黑色:rgb(0,0,0)

     红色:rgb(255,0,0)

     绿色:rgb(0,255,0)

     蓝色:rgb(0,0,255)

     青色:rgb(0,255,255)

     紫色:rgb(255,0,255)

     调整相关数字,便可以得到深浅不一的各种颜色。

     

    颜色样式

    RGB数值

    颜色代码

    颜色样式

    RGB数值

    颜色代码

    黑色

    0,0,0

    #000000

    白色

    255,255,255

    #FFFFFF

    象牙黑

    88,87,86

    #666666

    天蓝灰

    202,235,216

    #F0FFFF

    冷灰

    128,138,135

    #808A87

    灰色

    192,192,192

    #CCCCCC

    暖灰

    128,118,105

    #808069

    象牙灰

    251,255,242

    #FAFFF0

    石板灰

    118,128,105

    #E6E6E6

    亚麻灰

    250,240,230

    #FAF0E6

    白烟灰

    245,245,245

    #F5F5F5

    杏仁灰

    255,235,205

    #FFFFCD

    蛋壳灰

    252,230,202

    #FCE6C9

    贝壳灰

    255,245,238

    #FFF5EE

    红色

    255,0,0

    #FF0000

    黄色

    255,255,0

    #FFFF00

    镉红

    227,23,13

    #E3170D

    镉黄

    255,153,18

    #FF9912

    砖红

    156,102,31

    #9C661F

    香蕉黄

    227,207,87

    #E3CF57

    珊瑚红

    255,127,80

    #FF7F50

    金黄

    255,215,0

    #FFD700

    番茄红

    255,99,71

    #FF6347

    肉黄

    255,125,64

    #FF7D40

    粉红

    255,192,203

    #FFC0CB

    粉黄

    255,227,132

    #FFE384

    印度红

    176,23,31

    #B0171F

    橘黄

    255,128,0

    #FF8000

    深红

    255,0,255

    #FF00FF

    萝卜黄

    237,145,33

    #ED9121

    黑红

    116,0,0

    #990033

    黑黄

    85,102,0

    #8B864E

    绿色

    0,255,0

    #00FF00

    棕色

    128,42,42

    #802A2A

    青色

    0,255,255

    #00FFFF

    土色

    199,97,20

    #C76114

    黄绿色

    127,255,0

    #7FFF00

    沙棕色

    244,164,95

    #F4A460

    青绿色

    64,224,205

    #40E0D0

    棕褐色

    210,180,140

    #D2B48C

    靛青色

    8,46,84

    #082E54

    玫瑰红

    188,143,143

    #BC8F8F

    森林绿

    34,139,34

    #228B22

    赫色

    160,82,45

    #A0522D

    草绿色

    107,142,35

    #6B8E23

    肖贡土色

    199,97,20

    #C76114

    蓝色

    0,0,255

    #0000FF

    肖贡土色

    160,32,240

    #A020F0

    锰蓝

    3,168,158

    #03A89E

    淡紫色

    218,112,214

    #DA70D6

    深蓝

    25,25,112

    #191970

    紫罗兰

    138,43,226

    #8A2BE2

    土耳其蓝

    0,199,140

    #00C78C

    胡紫色

    153,51,250

    #9933FA

    灰度图像与RGB图像的转变
    RGB[A]转换为灰度:Y=0.299*R+0.587*G+0.114*B;

    HSV颜色空间

    HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。
     
    色调H:用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
    饱和度S:取值范围为0.0~1.0;
    亮度V:取值范围为0.0(黑色)~1.0(白色)。
     
    RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
    HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
     

    HSV颜色分量范围

    一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。

    H:  0— 180

    S:  0— 255

    V:  0— 255

    此处把部分红色归为紫色范围:

    HSV六棱锥

    H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。相隔120度。互补色分别相差180度。

    V表示色彩的明亮程度,范围从0到1。有一点要注意:它和光强度之间并没有直接的联系。

     
    1、RGB转化到HSV的算法:
    max=max(R,G,B)
    min=min(R,G,B)
    V=max(R,G,B)
    S=(max-min)/max
    ifR = max,H =(G-B)/(max-min)* 60
    ifG = max,H = 120+(B-R)/(max-min)* 60
    ifB = max,H = 240 +(R-G)/(max-min)* 60
    ifH < 0,H = H+ 360
     
    2、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 5: R = v; G = a; B = b;
      HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。
      一般说来,人眼最大能区分128种不同的色彩,130种色饱和度,23种明暗度。如果我们用16Bit表示HSV的话,可以用7位存放H,4位存放S,5位存放V,即745或者655就可以满足我们的需要了。
      由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛,如Photoshop(在Photoshop中叫HSB)等等,但这也决定了它不适合使用在光照模型中,许多光线混合运算、光强运算等都无法直接使用HSV来实现。
  • 相关阅读:
    Django组件——forms组件
    Django组件——分页器(paginator)
    Django和Ajax
    多表操作
    输入DStream和Receiver详解
    spark中streamingContext的使用详解
    spark与storm的对比
    spark1.5引进内置函数
    spark 分析sql内容再插入到sql表中
    spark之数据源之自动分区推断
  • 原文地址:https://www.cnblogs.com/long5683/p/9757135.html
Copyright © 2020-2023  润新知