颜色模型浅谈(三)

类别:VC语言 点击:0 评论:0 推荐:

RGB颜色模型

  我们的眼睛通过三种可见光对视网膜的椎状细胞的刺激来感受颜色。这些光在波长为630nm(红)530nm(绿)和450(蓝)时的刺激达到高峰。通过对各刺激强度的比较,我们感受到光的颜色。这种视觉理论就是使用红、绿、蓝三种基色来显示彩色的基础,称之为RGB颜色模型。

  以R、G、B三个参数为坐标,我们可以得到如下的一个单位立方体来描述RGB颜色模型。请看下图:

        




  和XYZ模型一样,RGB是一个加色模型。光源的亮度、色度、纯度混合在R、G、B三个参数中。根据上一节中讲的光通亮的概念,光源的亮度(lightless)L就应该表示为:

L=0.3R+0.6G+0.1R

  当然,这里的系数只是近似的,它具体的值依赖于显示器所采用的磷粉标准,以NTSC视频信号标准,则三个系数依次为:0.299、0.587、0.144

  纯度S则为:S=MIN(R,G,B)/MAX(R,G,B)

  因为大家平时用的最多最熟悉的就是RGB了,所以关于它我就说这么多了,以后我们还会再深入的研究它的。

YIQ颜色模型

  同上面我们处理XYZ颜色模型一样,我们也可以将RGB颜色模型转化为亮度-色度空间。在NTSC视频信号中使用了YIQ颜色模型。这是一种由RGB转化来的亮度-色度模型,该模型中Y代表了光源的亮度,而色度则包含在I、Q两个参数里。在参数I中包含了橙-青的色彩信息,Q中包含了绿-品红的色彩信息。由于,人眼对于亮度的敏感程度大于对于色度的敏感程度,因此我们总是将最大的带宽分给Y信号,并且由于Y信号包含了亮度信号,所以在黑白电视机中就只使用Y信号。下面是RGB<-->YIQ的变换公式:

    | Y |   | 0.299 0.587  0.144  |  | R |
    | I | = | 0.596 -0.275 -0.321 | .| G |
    | Q |   | 0.212 -0.528 0.311  |  | B |

    | R |   | 1.000 0.956  0.620  |  | Y |
    | G | = | 1.000 -0.272 -0.647 | .| I |
    | B |   | 1.000 -1.108 1.705  |  | Q |

  由于YIQ只用在NTSC视频信号中,对于我们的意义也不大,这里就不详细阐述了。

YUV颜色模型

  还有一种值得一提的,和YIQ颜色模型类似的颜色模型就是YUV颜色模型了。在计算机里YUV颜色模型是仅次于RGB模型的使用最广泛的颜色模型。事实上YUV只是一类颜色模型(YCrCb)的总称,它是个很大的家族,具有相当多的存储格式,一般来说凡是基于YCrCb颜色模型的都可以称的上是YUV。YCrCb是一种和YIQ很类似的颜色模型,其中Y的定义是相同的,色度信息也是组合在Cr、Cb中,其中Cr代表了光源中的红色分量,Cr代表了光源中的蓝色分量,因此它的变换公式是这样的:

    | Y  |   | 0.299   0.587   0.114   |    | R |   | 0   |
    | Cb | = |-0.1687 -0.3313  0.5     | .  | G | + | 0.5 |
    | Cr |   | 0.5    -0.4187 -0.0813  |    | B |   | 0.5 |

  R = Y + 1.402   * (Cr-0.5)
  G = Y - 0.34414 * (Cb-0.5) - 0.71414 * (Cr-0.5)
  B = Y + 1.772   * (Cb-0.5)

  后面加上0.5使得Cr Cb总为正数,便于我们处理。

  如前所述,人眼对于亮度的敏感程度大于对于色度的敏感程度,所以完全可以让相临的像素使用同一个色度值,而人眼的感觉不会起太大的变化,通过损失色度信息来达到节省存储空间的目的,着就是YUV的基本思想。基于此,我们可以定义出许多YUV的格式,例如相临两个像素使用一个色度值的YUYV,JPEG/MPEG中相临四个像素使用一个色度值的YUV12等等。 

本文地址:http://com.8s8s.com/it/it3818.htm