搜索你想要的,找不到就帮忙一起完善吧~~

色彩空间(Color Space)

颜色空间 Color Space 

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

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

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

饱和度(saturation):饱和度是指颜色的纯度即掺入白光的程度,表示颜色深浅的程度。 例如:红色 + 白色 = 粉红色 饱和度下降,同时色调发生变化 

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

 

RGB颜色空间 

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

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

但是,当处理图像时,使用RGB颜色空间并不是很有效。例如,为了修改给定像素的亮度,必须同时从帧缓冲区中读出RGB三个分量,然后重新计算给定亮度对应的RGB值,执行相应的修改后再写回帧缓冲区。如果我们能够访问到直接以亮度格式存储的图像,那这个处理过程会简单很多。 RGB颜色空间的另一个缺点是,要在RGB颜色立方体中生成任何一种颜色,三个RGB分量都需要占用相同的带宽。这就使得每个RGB颜色分量的帧缓冲需要同样的像素深度和现实分辨率。 RGB颜色空间存在许多种不同类型的实现,下面只介绍其中三种,即sRGB、Adobe RGB和scRGB,为了方便说明,先引入CIE 1931色度图。

上面这幅图像,有一个“舌形”色域空间,是人眼能够辨别的色彩空间,它的边缘围绕

一道从波长从380到700(nm)的光谱,中间就是用红、绿、蓝三种颜色按不同比例调

配出来的颜色。这幅图的巧妙之外在于它通过“归一化”,用两维平面来表示三个数据。X轴是红色的

比例,Y轴是绿色的比例,而Z轴是蓝色的比例,虽然Z轴没有画出来,但它的比例数据可以很方便地计算出来。比方红是0.2,绿是0.3,那么蓝就是0.5。因为它们三者加起来必须等于1。

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

大概过了两年,Adobe推出了Adobe RGB标准,色域要比sRGB的范围更宽广,这几年上面这幅图像,有一个“舌形”色域空间,是人眼能够辨别的色彩空间,它的边缘围绕一道从波长从380到700(毫微米)的光谱,中间就是用红、绿、蓝三种颜色按不同比例调配出来的颜色。 

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

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

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

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

有好多上述设备采用了这一标准,然而它们都无法覆盖人眼可见的色域范围。

 

2003年,微软又推出了scRGB色域标准,它大大拓展了色域范围,不仅全部复盖人眼可见的色域范围,还把空间扩展了很多。其16位的精度也大大超过8位的sRGB,从下面的图片中我们可以看到它们的区别。YUV颜色空间 YUV是PAL制式和SECAM制式采用的颜色空间,其中Y代表亮度,UV代表色度。“亮

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

gamma校准的RGB与YUV颜色空间的转换的公式如下: 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颜色空间 

YIQ是NTSC制式采用的颜色空间。在YIQ系统中,Y分量代表图像的亮度信息,I、Q

两个分量则携带颜色信息,I分量代表从橙色到青色的颜色变化,而Q分量则代表从紫色到黄绿色的颜色变化。 

gamma校准的RGB与YIQ颜色空间的转换的公式如下: 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也称作印刷色彩模式,顾名思义就是用来印刷的。CMY是3种印刷油墨名称的首

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

CMYK和RGB相比有一个很大的不同:RGB模式是一种发光的色彩模式,你在一间黑暗

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

 

xvYCC颜色空间 

xvYCC颜色空间是对基本的YCbCr的色域进行扩展后得到的颜色空间,它使得颜色数目

多了1.8倍。xvYCC规范使用BT.709色度标准和D65参考白色。scRGB和xvYCC颜色空间之间有公式可以相互转换。HDMI正在用色域边界描述元数据的方式传输xvYCC视频数据。

PhotoYCC颜色空间 

PhotoYCC是柯达公司的一个商标,是为了对Photo CD图像数据进行编码开发的颜色标

准。目的就是要建立一个与现实设备无关的颜色空间。PhotoYCC和RGB颜色空间之间可以通过公式进行转换。它的颜色模型如下图:

HSI、HLS和HSV颜色空间 

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

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

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

发表回复

您的电子邮件地址不会被公开。必填字段标记 *

你可以使用这些HTML标签和属性 <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>