赞
踩
由此,我们可以得到一个重要理论:采用3种精心选择的单色光刺激视锥细胞,可以模拟出人眼所能感知的几乎所有的颜色(例如红绿光的混合光,和单色黄光,刺激视锥细胞产生的视神经信号是等效的),这就是三色加法模型。所以说,“三原色”的原理是由生理因素造成的。
颜色通常用三个独立的属性来描述,由这三个独立变量综合作用,从而构成了一个颜色空间坐标系。但是,被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个颜色对象。颜色空间按照基本机构可以分为两大类:基色颜色空间和色亮分离颜色空间。前者典型的是RGB,后者包括YUV和HSV等等。
CIE(国际照明委员会)是位于欧洲的一个国际学术研究机构,1931年,CIE在会议上根据之前的实验成果提出了一个标准——CIE1931-RGB标准色度系统。CIE1931-RGB系统选择了700nm(R)、546.1nm(G)和435.8nm(B)三种波长的单色光作为三原色。之所以选这三种颜色,是因为比较容易精确地产生出来(由汞弧光谱滤波产生,色度稳定准确)。
从上图可以看到,三个颜色的刺激值R、G、B如何构成某一种颜色:例如580nm左右(红绿线交叉点)的黄色光,可以用1:1(经过亮度换算)的红绿两种原色混合来模拟。
如果要根据三个刺激值R、G、B来表现可视颜色,绘制的可视图形需要是三维的。为了能在二维平面上表现颜色空间,这里需要做一些转换。颜色的概念可以分为两部分:亮度(光的振幅,即明暗程度)、色度(光的波长组合,即具体某种颜色)。我们将光的亮度(Y)变量分离出来,之后用比例来表示三色刺激值:
r=R/(R+G+B)
g=G/(R+G+B)
b=B/(R+G+B)
这样就能得出r+g+b=1。由此可见,色度坐标r、g、b中只有两个变量是独立的。这样我们就把刺激值R、G、B转换成r、g、Y(亮度)三个值,把r、g两个值绘制到二维空间得到的图就是色域图。
上图中,马蹄形曲线就表示单色的光谱(即光谱轨迹)。例如540nm的单色光,可以看到由r=0、g=1、b=(1-r-g)=0三个原色的分量组成。再例如380-540nm波段的单色光,由于颜色匹配实验结果中红色存在负值的原因,该段色域落在了r轴的负区间内。自然界中,人眼可分辨的颜色,都落在光谱曲线包围的范围内。
CIE1931-RGB标准是根据实验结果制定的,出现的负值在计算和转换时非常不便。CIE假定人对色彩的感知是线性的,因此对上面的r-g色域图进行了线性变换,将可见光色域变换到正数区域内。CIE在CIE1931-RGB色域中选择了一个三角形,该三角形覆盖了所有可见色域,之后将该三角形进行如下的线性变换,将可见色域变换到(0,0)(0,1)(1,0)的正数区域内。即假想出三原色X、Y、Z,它们不存在于自然界中,但更方便计算。
得到的结果如图所示,
针对这幅图,可以得到如下性质:
(1)该色度图所示意的颜色包含了一般人可见的所有颜色,即人类视觉的色域。色域的马蹄形弧线边界对应自然界中的单色光。色域下方直线的边界只能由多种单色光混合成。
(2)在该图中任意选定两点,两点间直线上的颜色可由这两点的颜色混合成。给定三个点,三点构成的三角形内颜色可由这三个点颜色混合成。
(3)给定三个真实光源,混合得出的色域只能是三角形(例如液晶显示器的评测结果),绝对不可能完全覆盖人类视觉色域。
这就是CIE1931-XYZ标准色度学系统。该系统是国际上色度计算、颜色测量和颜色表征的统一标准,是几乎所有测色仪器的设计与制造依据。
下面就对这些颜色模型一一作出解释。
RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间是与设备相关的色彩空间,因为不同的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同 的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE1931RGB真实三原色表色系统空间是不同的,后者是与设备无关的颜色空间。
在RGB颜色空间中,任意颜色F都可以用R、G、B三色不同分量的相加混合而成:F=r[R]+r[G]+r[B]。RGB颜色空间还可以用一个三维的立方体来描述。当三基色分量都为最小值(最弱)时混合为黑色光;当三基色都为最大值(由存储空间决定)时,混合为白色光。三个分量分别为R、G、B分量,取值均为[0,255]。
RGB24是一种24位的RGB格式,各分量占用8位,取值范围为0-255。
我们日常使用的RGB色彩空间其实是指sRGB,一般每一个分量的取值在[0,255]。RGB色彩空间采用物理三基色表示,适合彩色显象管工作,因而其物理意义很清楚。然而,它并不适应人的视觉特点,因而产生了其它不同的色彩空间表示方法。
通常设备(例如笔记本的液晶显示屏)能表现的色域大概是下面这样。
正如上面写的,这个模型是由真实的人眼颜色匹配实验得出的模型,RGB分别表示那三个固定波长的光的份量。
在CIE-RGB色彩空间中,R分量在对应某一些波长的单色光时会出现负值,这时CIE可以通过相应的矩阵校正,得到CIE-XYZ色彩空间。
它是根据CIE-RGB进行变换得到的颜色模型,XYZ分别表示三个假想色的光的份量。通常简写为XYZ颜色模型。
国际照明委员会(CIE)在进行了大量正常人视觉测量和统计,1931年建立了"标准色度观察者", 从而奠定了现代CIE标准色度学的定量基础。由于"标准色度观察者"用来标定光谱色时出现负刺激值,计算不便,也不易理解,因此1931年CIE在RGB 系统基础上,改用三个假想的原色X、Y、Z建立了一个新的色度系统。将它匹配等能光谱的三刺激值,定名为"CIE1931 标准色度观察者 光谱三刺激值",简称为"CIE1931标准色度观察者"。这一系统叫做"CIE1931标准色度系统"或称为" 2° 视场XYZ色度系统"。CIEXYZ颜色空间稍加变换就可得到Yxy色彩空间,其中Y取三刺激值中Y的值, 表示亮度,x、y反映颜色的色度特性。定义如下:在色彩管理中,选择与设备无关的颜色空间是十分重要的,与设备无关的颜色空间由国际照明委员会(CIE)制定,包括CIE-XYZ和CIE-Lab两个标准。它们包含了人眼所能辨别的全部颜色。而且,CIE-Yxy测色制的建立给定量的确定颜色创造了条件。 但是,在这一空间中,两种不同颜色之间的距离值并不能正确地反映人们色彩感觉差别的大小, 也就是说在CIE-Yxy色厦图中,在 不同的位置不同方向上颜色的宽容量是不同的,这就是Yxy颜色空间 的不均匀性。这一缺陷的存在,使得在Yxy及XYZ空间不能直观地评价颜色。
该模型由CIE-XYZ衍生得来。其中, Yxy中的Y表示光的亮度。这个模型投影到x-y平面上即上面的CIE1931-XYZ色度图。其中x、y分量的取值范围是[0,1]。有时该模型也被称作CIE-xyY。
CMYK(cyan,magenta,yellow)颜色空间应用于印刷工业。实际印刷中,一般采用青 (C)、品(M)、黄(Y)、黑(BK)四色印刷,在印刷的中间调至暗调增加黑版。当红绿蓝三原色被混合时,会产生 白色,但是当混合蓝绿色、紫红色和黄色三原色时会产生黑色。既然实际用的墨水并不会产生纯正的颜色, 黑色是包括在分开的颜色,而这模型称之为CMYK。CMYK颜色空间是和设备或者是印刷过程相关的,则工艺方法、 油墨的特性、纸张的特性等,不同的条件有不同的印刷结果。所以CMYK颜色空间称为与设备有关的表色空间。 而且,CMYK具有多值性,也就是说对同一种具有相同绝对色度的颜色,在相同的印刷过程前提下,可以用分种 CMYK数字组合来表示和印刷出来。这种特性给颜色管理带来了很多麻烦,同样也给控制带来了很多的灵活性。 在印刷过程中,必然要经过一个分色的过程,所谓分色就是将计算机中使用的RGB颜色转换成印刷使用的CMYK 颜色。在转换过程中存在着两个复杂的问题,其一是这两个颜色空间在表现颜色的范围上不完全一样,RGB的 色域较大而CMYK则较小,因此就要进行色域压缩;其二是这两个颜色都是和具体的设备相关的,颜色本身没有 绝对性。因此就需要通过一个与设备无关的颜色空间来进行转换,即可以通过XYZ或Lab色空间来进行转换。
CMY是青(Cyan)、洋红或品红(Magenta)和黄(Yellow)三种颜色的简写,是相减混色模式,用这种方法产生的颜色之所以称为相减色,乃是因为它减少了为视觉系统识别颜色所需要的反射光。由于彩色墨水和颜料的化学特性,用三种基本色得到的黑色不是纯黑色,因此在印刷术中,常常加一种真正的黑色(black ink),这种模型称为CMYK模型,广泛应用于印刷术。每种颜色分量的取值范围为0~100;CMY常用于纸张彩色打印方面。
- // RGB -> CMYK:
- K = min(255 - R, 255 - G, 255 - B);
- if(K >= 255)
- C = M = Y = 0;
- else
- {
- float K1 = 255 – K;
- C = 255 * (255 - R – K) / K1;
- M = 255 * (255 - G – K) / K1;
- Y = 255 * (255 - B – K) / K1;
- }
-
- // CMYK -> RGB:
- K1 = 1 – K / 255.0f;
- R = 255 – (C * K1 + K);
- G = 255 – (M * K1 + K);
- B = 255 – (Y * K1 + K);
CMY是一种颜料混合配色体系,而RGB是一种光混合配色体系。
C - Cyan 青 〈互补色〉 R - Red 红
M - Magenta 品红 〈互补色〉 G - Green 绿
Y - Yellow 黄 〈互补色〉 B - Blue 蓝
RGB与CMY之间得转换关系为:
- // RGB -> CMY:
- C = 255 – R;
- M = 255 – G;
- Y = 255 – B;
- // CMY -> RGB:
- R = 255 – C;
- G = 255 – M;
- B = 255 – Y;
CMYK与CMY之间得转换关系为:
- // CMY -> CMYK:
- K = min(C, M, Y);
- if(K >= 255)
- C = M = Y = 0;
- else
- {
- float K1 = 255 – K;
- C = 255 * (C – K) / K1;
- M = 255 * (M – K) / K1;
- Y = 255 * (Y – K) / K1;
- }
- // CMYK -> CMY:
- K1 = 1 – K / 255.0f;
- C = C * K1 + K;
- M = M * K1 + K;
- Y = Y * K1 + K;
CMYK与RGB之间得转换关系为:
- // RGB -> CMYK:
- K = min(255 - R, 255 - G, 255 - B);
- if(K >= 255)
- C = M = Y = 0;
- else
- {
- float K1 = 255 – K;
- C = 255 * (255 - R – K) / K1;
- M = 255 * (255 - G – K) / K1;
- Y = 255 * (255 - B – K) / K1;
- }
-
- // CMYK -> RGB:
- K1 = 1 – K / 255.0f;
- R = 255 – (C * K1 + K);
- G = 255 – (M * K1 + K);
- B = 255 – (Y * K1 + K);
HSL和HSV的颜色模型比较相近,它们用来描述颜色相对于RGB等模型显得更加自然。电脑绘画时,这两个模型非常受到欢迎。
HSL和HSV中,H都表示色相(Hue)。通常该值取值范围是[0°,360°],对应红橙黄绿青蓝紫-红这样顺序的颜色,构成一个首尾相接的色相环。色相的物理意义就是光的波长,不同波长的光呈现了不同的色相。
HSL和HSV中,S都表示饱和度(Saturation)(有时也称为色度、彩度)即色彩的纯净程度。例如龙袍的金黄色饱和度就比屎黄色高。对应到到物理意义上:即一束光可能由很多种不同波长的单色光构成,波长越多越分散,则色彩的纯净程度越低,而单色的光构成的色彩纯净度就很高。
两个颜色模型不同的就是最后一个份量。
HSL中的L表示亮度(Lightness/Luminance/Intensity)。根据缩写不同HSL有时也称作HLS或HSI(就是说HSL、HLS、HSI是一回事)。
HSV中的V表示明度(Value/Brightness)。根据缩写不同,HSV有时也被称作HSB(就是说HSV和HSB是一回事)。
至于亮度和明度的区别,可以看下面的图。一种纯色的明度是白色的明度,而纯色的亮度等于中灰色的亮度。
下面的图能更好的对比HSL和HSV的区别:在圆柱体外围是纯色(红黄绿蓝紫…)HSL中,这圈纯色位于亮度(L)等于1/2的部位,而在HSV中是在明度(Value)等于1的部位。
将上面的圆柱体裁掉无用的部分,得到的是如下的锥形,就能更明显的看出HSL和HSV的区别了。
HSV是一种将RGB色彩空间中的点以倒圆锥体的形式进行表示的颜色空间。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。HSV颜色空间可以用一个圆锥空间模型来描述。
(1)色相H由绕V轴的旋转角给定,色相是色彩的基本属性,就是平常说的颜色的名称,如红色、绿色和蓝色等。红色对应于角度0° ,绿色对应于角度120°,蓝色对应于角度240°。在HSV颜色模型中,每一种颜色和它的补色相差180° 。
(2)明度V的取值范围为0-Vmax,Vmax的具体数值与计算机中HSV取值范围和存储的长度有关。圆锥的顶面对应于明度V=Vmax,它包含RGB模型中的R=1、G=1和B=1 三个面,所代表的颜色较亮。在圆锥顶点处,V=0,H和S无定义, 代表黑色。圆锥的顶面中心处S=0,V=Vmax,H无定义,代表白色。从圆锥顶面中心到圆锥顶点代表亮度渐暗的灰色,即具有不同灰度的灰色。对于这些点,S=0,H的值无定义。可以说,HSV模型中的V轴对应于RGB颜色空间中的主对角线。
(4) 饱和度S是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值,所以圆锥顶面的半径为1。HSV颜色模型所代表的颜色域是CIE色度图的一个子集,这个模型中饱和度为百分之百的颜色,其纯度一般小于百分之百。
(5) 在圆锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色。HSV模型对应于画家配色的方法。画家用改变色浓和色深的方法从某种纯色获得不同色调的颜色,在一种纯色中加入白色以改变色浓,加入黑色以改变色深,同时加入不同比例的白色,黑色即可获得各种不同的色调。
HSI色彩空间是从人的视觉系统出发,用色调(Hue)、色饱和度(Saturation或Chroma)和亮度 (Intensity或Brightness)来描述色彩。HSI色彩空间可以用一个圆锥空间模型来描述。用这种描述HIS色彩空间的圆锥模型相当复杂,但确能把色调、色饱和度和亮度的变化情形表现得很清楚。通常把色调和饱和度通称为色度,用来表示颜色的类别与深浅程度。由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于色彩处理和识别,人的视觉系统经常采用HSI色彩空间, 它比RGB色彩空间更符合人的视觉特性。在图像处理和计算机视觉中大量算法都可在HSI色彩空间中方便地使用,它们可以分开处理而且是相互独立的。因此,在HSI色彩空间可以大大简化图像分析和处理的工作量。
下面对H、S和V三个通道进行详细解释:
(1)色相 (Hue):指物体传导或反射的波长,更常见的是以颜色如红色,橘色或绿色来辨识,取 0 到 360 度的数值来衡量。
(2)饱和度 (Saturation):又称色度,是指色彩的强度或纯度。饱和度代表灰色与色调的比例,并以 0% (灰色) 到 100% (完全饱和) 来衡量。 饱和度与颜色的白光光量刚好成反比,它可以说是一个颜色鲜明与否的指标。
(3)亮度 (Intensity):是指颜色的相对明暗度,通常以 0% (黑色) 到 100% (白色) 的百分比来衡量。
YUV颜色模型中,U、V表示的是色度(Chrominance/Chroma)。YUV是欧洲电视系统所采用的颜色模型(属于PAL制式),颜色被分为一个亮度信号和两个色差信号进行传输。
YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和两个色差总共三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间的目的是,用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
根据美国国家电视制式委员会,NTSC制式的标准,当白光的亮度用Y来表示时,它和红、绿、蓝三色光的关系可用如下式的方程描述:Y=0.3R+0.59G+0.11B 这就是常用 的亮度公式。色差U、V是由B-Y、R-Y按不同比例压缩而成的。如果要由YUV空间转化成RGB空间,只要进行 相反的逆运算即可。与YUV色彩空间类似的还有Lab色彩空间,它也是用亮度和色差来描述色彩分量,其中L为亮度、a和b分别为各色差分量。
B = Y + 2.03U
Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一颜色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另 外,这种模式是以数字化方式来描述人的视觉感应, 与设备无关,所以它弥补了RGB和CMYK模式必须依赖于设备色彩特性的不足。 由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。这就意味着,RGB与CMYK所能描述的色彩信息,在Lab颜色空间中都能得以影射。
Lab颜色空间取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色, 负端代表兰色(a,b)。相关变换公式为:
L=116f(y)-16
a=500[f(x/0.982)-f(y)]
b=200[f(y)-f(z/1.183)]
其中: f(x)=7.787x+0.138, x<0.008856; f(x)=(xc)1/3, x>0.008856
在Lab颜色空间中,一种颜色由L(亮度)、a颜色和b颜色三种通道表征,其中L表示亮度(Luminosity),L取值为0~100(纯黑-->纯白)。a表示从红色至绿色的范围,它的取值范围为+127~-128(洋红-->绿)。b表示从黄色至蓝色的范围,它的取值范围为+127~-128(黄-->蓝)。正为暖色,负为冷色。在OpenCV中,当图像类型为CV_8UC3时,图像在Lab空间的像素取值范围均为[0, 255],这是因为像素取值作了如下的变换:
L = L * 255 \ 100
a = a + 128
b = b + 128
这些颜色模型大都是用在电视系统、数位摄影等地方。其中的Y分量都表示的是明亮度(Luminance、Luma)。
YUV颜色模型中,U、V表示的是色度(Chrominance/Chroma)。YUV是欧洲电视系统所采用的颜色模型(属于PAL制式),颜色被分为一个亮度信号和两个色差信号进行传输。
YCbCr(简称YCC)中,Cb和Cr蓝色(blue)和红色(red)的色度。YCbCr是YUV的压缩和偏移的版本。
YPbPr类似YCbCr,与之不同的是,YPbPr选用的CIE色度坐标略有不同。一般SDTV传输的色差信号被称作Cb、Cr,而HDTV传输的色差信号被称作Pb、Pr。
YDbDr也类似YCbCr,同样也是色度坐标不同。YDbDr是SECAM制式电视系统所用的颜色模型。
YIQ也和上面的类似。。是用在了NTSC制式的的电视系统里。
全球电视系统制式分布,PAL用YUV、SECAM用YDbDr、NTSC用YIQ
下面再说一些人听懂的话:
YCbCr颜色空间,也就是YUV,YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了GB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
Y代表的灰度级较高,而CrCb则相对灰度值要少些。
从上图可以看出区别,Y对应的就是灰度或者说是亮度,而Cb、Cr则相对灰度级较少,人眼分辨差异较大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。