用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Visual C++

颜色模型浅谈(三)

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:31:47

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等等。 


Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:22,890.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号