原创 各种颜色空间介绍

2010-1-28 09:41 5157 1 2 分类: 工程师职场

颜色空间 color space<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



颜色空间是颜色集合的数学表示。三种最常用的颜色模型是:RGB(用于计算机图形学中);YIQYUVYCbCr(用于视频系统中);CMYK(用于彩色打印)。为了更好的理解颜色模型,先介绍几个基本的颜色概念。


亮度(lightness or intensity or luminance):亮度是光作用于人眼所引起的明亮程度的感觉,它与被观察物体的发光强度有关。主要表现光的强和弱。


色调(hue):色调是当人眼看一种或多种波长的光时所产生的色彩感觉,它反映颜色的种类,是决定颜色的基本特征。


饱和度(saturation):饱和度是指颜色的纯度即掺入白光的程度,表示颜色深浅的程度。


例如:红 + 白 = 粉红色 饱和度下降,同时色调发生变化


需要说明的是,由于上面所提到的三种最常用的颜色模型与亮度、色度、饱和度这些直接概念没有直接的关系。所以又提出了其他的颜色空间模型,比如HSIHSV,来简化编程和操作。


 


 


RGB颜色空间


由于彩色显示器采用红、绿和蓝来生成目标颜色,所以RGB颜色空间是计算机图形学最通常的选择,这样可以简化系统的构架与设计。


可以用三维的笛卡尔坐标系统来表示RGB颜色空间,如图3-1。而表3-1包含的RGB值具有100%的幅度、100%的饱和度,是8个标准的视频测试信号。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 4c4d5fa0-c9e9-454c-90e4-9f33231e4e25.jpg


点击看大图


但是,当处理图像时,使用RGB颜色空间并不是很有效。例如,为了修改给定像素的亮度,必须同时从帧缓冲区中读出RGB三个分量,然后重新计算给定亮度对应的RGB值,执行相应的修改后再写回帧缓冲区。如果我们能够访问到直接以亮度格式存储的图像,那这个处理过程会简单很多。


RGB颜色空间的另一个缺点是,要在RGB颜色立方体中生成任何一种颜色,三个RGB分量都需要占用相同的带宽。这就使得每个RGB颜色分量的帧缓冲需要同样的像素深度和现实分辨率。



RGB颜色空间存在许多种不同类型的实现,下面只介绍其中三种,即sRGBAdobe RGBscRGB,为了方便说明,先引入CIE 1931色度图。


3b44ce9a-8f38-47c9-bf15-fb007cf92482.jpg


上面这幅图像,有一个“舌形”色域空间,是人眼能够辨别的色彩空间,它的边缘围绕一道从波长从380700(毫微米)的光谱,中间就是用红、绿、蓝三种颜色按不同比例调配出来的颜色。


这幅图的巧妙之外在于它通过“归一化”,用两维平面来表示三个数据。X轴是红色的比例,Y轴是绿色的比例,而Z轴是蓝色的比例,虽然Z轴没有画出来,但它的比例数据可以很方便地计算出来。比方红是0.2,绿是0.3,那么蓝就是0.5。因为它们三者加起来必须等于1


10年前,微软和惠普推出一个叫standard RGB的色域标准(sRGB),是一个基于32PC机的标准。从上面的图片看到,它只是人眼能辨别的色彩空间(舌形色域)的一部分,人眼能辨别的好多色彩它都无法显示。但这个标准还是被广泛接受。我们现在在使用的显示器、扫描仪、打印机、数码相机,许多都使用这个标准。


大概过了两年,Adobe推出了Adobe RGB标准,色域要比sRGB的范围更宽广,这几年有好多上述设备采用了这一标准,然而它们都无法覆盖人眼可见的色域范围。


2003年,微软又推出了scRGB色域标准,它大大拓展了色域范围,不仅全部复盖人眼可见的色域范围,还把空间扩展了很多。其16位的精度也大大超过8位的sRGB,从下面的图片中我们可以看到它们的区别。



点击看大图


   


 


 


 


YUV颜色空间


YUVPAL制式和SECAM制式采用的颜色空间,其中Y代表亮度,UV代表色度。亮度是通过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。色度则定义了颜色的两个方面,色调(hue)与饱和度(saturation),分别用CrCb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。 


gamma校准的RGBYUV颜色空间的转换的公式如下:


Y = 0.299R + 0.587G + 0.114B 


U = -0.147R - 0.289G + 0.436B


  =0.492(B-Y)  


V = 0.615R - 0.515G - 0.100B 


  =0.877(R-Y)


R = Y + 1.140V 


G = Y - 0.395U - 0.581V 


B = Y + 2.032U


通常所说的YCbCr颜色空间实际上就是YUV颜色空间的缩放和偏移版本,YCbCr进行了图像子采样。



 


 


YIQ颜色空间


YIQNTSC制式采用的颜色空间。在YIQ系统中,Y分量代表图像的亮度信息,IQ两个分量则携带颜色信息,I分量代表从橙色到青色的颜色变化,而Q分量则代表从紫色到黄绿色的颜色变化。


gamma校准的RGBYIQ颜色空间的转换的公式如下:


Y = 0.299R + 0.587G + 0.114B


I = 0.596R - 0.275G - 0.321B


          = 0.736(R-Y) - 0.268(B-Y)


Q = 0.212R - 0.523G + 0.311B


    = 0.478(R-Y) - 0.413(B-Y)


R = Y + 0.956I + 0.621Q


G = Y - 0.272I + 0.647Q


B = Y - 1.107I + 1.704Q



 


CMYK颜色空间


       CMYK也称作印刷色彩模式,顾名思义就是用来印刷的CMY3种印刷油墨名称的首字母:青色Cyan、洋红色Magenta、黄色Yellow。而K取的是black最后一个字母,之所以不取首字母,是为了避免与蓝色(Blue)混淆。从理论上来说,只需要CMY三种油墨就足够了,它们三个加在一起就应该得到黑色。但是由于目前制造工艺还不能造出高纯度的油墨,CMY相加的结果实际是一种暗红色。因此还需要加入一种专门的黑墨来调和。


CMYKRGB相比有一个很大的不同:RGB模式是一种发光的色彩模式,你在一间黑暗的房间内仍然可以看见屏幕上的内容;CMYK是一种依靠反光的色彩模式,CMYK颜色模式的基础并不是增加光线,而是减去光线我们是怎样阅读报纸的内容呢?是由阳光或灯光照射到报纸上,再反射到我们的眼中,才看到内容。它需要由外界光源,如果你在黑暗房间内是无法阅读报纸的。



 


 


xvYCC颜色空间


xvYCC颜色空间是对基本的YCbCr的色域进行扩展后得到的颜色空间,它使得颜色数目多了1.8倍。xvYCC规范使用BT.709色度标准和D65参考白色。scRGBxvYCC颜色空间之间有公式可以相互转换。HDMI正在用色域边界描述元数据的方式传输xvYCC视频数据。


a8280b6e-6893-4240-8753-61e0150e5ee6.jpg



 


PhotoYCC颜色空间


PhotoYCC是柯达公司的一个商标,是为了对Photo CD图像数据进行编码开发的颜色标准。目的就是要建立一个与现实设备无关的颜色空间。PhotoYCCRGB颜色空间之间可以通过公式进行转换它的颜色模型如下图:


点击看大图


 


 


HSIHLSHSV颜色空间


HSI (huesaturationintensity) HSV (huesaturationvalue) 颜色空间在设计上使得颜色感知和解释的方式与人很接近,在需要手动指定颜色值时经常需要使用它们。HLS (huelightnesssaturation类似于HSI,只是使用了术语lightness,而不是光强度intensity来表示亮度。


HSIHSV颜色空间的差异在于亮度分量(I or V)的计算方式。HSI颜色空间适合传统的图像处理函数,如卷积、均化、直方图等,可以通过处理亮度值来实现这些操作,因为亮度IRGB值的依赖程度是一样的。HSV颜色空间适合处理色度和饱和度,因为它使得饱和度具有更大的动态取值范围。


HSV使用单六角锥的颜色模型,HSI使用双六角锥的颜色模型,分别如下图:


 


fdaf773d-6131-4d3f-9905-5e814338b450.jpg


43af0708-0c33-4948-a4a7-5000d626eb78.jpg



广告

文章评论 1条评论)

登录后参与讨论

billzhu_345737527 2015-3-4 20:50

解说的比较详细 应用上没说清楚
广告
我要评论
1
1
广告
关闭 热点推荐上一条 /2 下一条