颜色空间

来源:互联网 发布:深入浅出带你学python 编辑:程序博客网 时间:2024/05/01 04:31

颜色空间之HSL - yangfenghero的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/yangfenghero/article/details/6121141

图像处理 - yangfenghero的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/yangfenghero/article/category/650193

 

颜色空间之CIE色度模型:

    国际照明委员会(CIE,Commission Internationale de L'Eclairage / International)的色度模型是最早使用的模型之一。它是三维模型,其中,x和y两维定义颜色,第3维定义亮度。CIE在1976年规定了两种颜色空间。

    一种是用于自照明的颜色空间,叫做CIE LUV,如下图:

 

                                        CIE 1976年 LUV色度图

 

    另一种用于非自照明的颜色空间,叫做CIE 1976 L*a*b,或者叫做CIE LAB。CIE LAB 系统使用的坐标叫做对色坐标(opponent color coordinate),如下图所示。CIE LAB使用b*,a*和L*坐标轴定义CIE颜色空间。其中,L*值代表光亮度,其值从0(黑色)到100(白色)。b*和a*代表色度坐标,其中a*代表红-绿轴,b*代表黄-蓝轴,它们的值从0到10。a*=b*=0表示无色,因此L*就代表从黑到白的比例系数。使用对色坐标(opponet color coordinate)的想法来自这样的概念:颜色不能同时是红和绿,或者同时是黄和蓝,但颜色可以被认为是红和黄、红和蓝、绿和黄以及绿和蓝的组合。

  

                                       CIE LAB颜色空间

 

 

    CIE xyY色度图是从XYZ直接导出的一个颜色空间,它使用亮度Y参数和颜色坐标x, y来描述颜色。xyY中的Y值与XYZ中的Y刺激值一致,表示颜色的亮度或者光亮度,颜色坐标x, y用来在二维图上指定颜色,这种色度图叫做CIE 1931色度图(CIE 1931 Chromaticity Diagram),如下图(a)所示,图(b)为轮廓图。例如图(a)的A点在色度图上的坐标是x=0.4832,y=0.3045,那么它的颜色与红苹果的颜色相匹配。

  

 

    CIE 1931色度图是用标称值表示的CIE色度图,x表示红色分量,y表示绿色分量。E点代表白光,它的坐标为(0.33,0.33);环绕在颜色空间边沿的颜色是光谱色,边界代表光谱色的最大饱和度,边界上的数字表示光谱色的波长,其轮廓包含所有的感知色调。所有单色光都位于舌形曲线上,这条曲线就是单色轨迹,曲线旁标注的数字是单色(或称光谱色)光的波长值;自然界中各种实际颜色都位于这条闭合曲线内;RGB系统中选用的物理三基色在色度图的舌形曲线上。


 

颜色空间之RGB:


RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE 1931 RGB真实三原色表色系统空间是不同的,后者是与设备无关的颜色空间。

RGB(red, green, blue)参数redinteger类型,指定颜色中的红色分量强度,有效值在0255之,greeninteger类型,指定颜色中的绿色分量强度,有效值在0255之间,blueinteger类型,指定颜色中的蓝色分量强度,有效值在0255之间,返回值Long函数执行成功时返回由指定分量确定的颜色,用长整数表示。发生错误时返回-1。如果任何参数的值为NULLRGB()函数返回NULL。用法RGB()函数使用下述公式计算表示颜色的长整数:65536 *Blue + 256 * Green+Red。其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各分量中,数值越小,亮度越低,数值越大,亮度越高。

 


颜色空间之CMYK:


CMYK(cyan,magenta,yellow)颜色空间应用于印刷工业,印刷业通过青(C)、品(M)、黄(Y)三原色油墨的不同 网点面积率的叠印来表现丰富多彩的颜色和阶调,这便是三原色的CMY颜色空间。实际印刷中,一般采用青 (C)、品(M)、黄(Y)、黑(BK)四色印刷,在印刷的中间调至暗调增加黑版。当红绿蓝三原色被混合时,会产生白色,但是当混合蓝绿色、紫红色和黄色三原色时会产生黑色。既然实际用的墨水并不会产生纯正的颜色, 黑色是包括在分开的颜色,而这模型称之为CMYK。CMYK颜色空间是和设备或者是印刷过程相关的,则工艺方法、 油墨的特性、纸张的特性等,不同的条件有不同的印刷结果。所以CMYK颜色空间称为与设备有关的表色空间。 而且,CMYK具有多值性,也就是说对同一种具有相同绝对色度的颜色,在相同的印刷过程前提下,可以用分种 CMYK数字组合来表示和印刷出来。这种特性给颜色管理带来了很多麻烦,同样也给控制带来了很多的灵活性。 在印刷过程中,必然要经过一个分色的过程,所谓分色就是将计算机中使 用的RGB颜色转换成印刷使用的CMYK 颜色。在转换过程中存在着两个复杂的问题,其一是这两个颜色空间在表现颜色的范围上不完全一样,RGB的 色域较大而CMYK则较小,因此就要进行色域压缩;其二是这两个颜色都是和具体的设备相关的,颜色本身没有绝对性。因此就需要通过一个与设备无关的颜色空间来进行转换,即可以通过以上介绍的XYZ或LAB色空间来进行转换。

CMYK与CMY之间得转换关系为:

[cpp] view plaincopy
  1. // CMY -> CMYK:  
  2. K = min(C, M, Y);  
  3. if(K >= 255)  
  4.    C = M = Y = 0;  
  5. else  
  6. {  
  7.    float K1 = 255 – K;  
  8.    C = 255 * (C – K) / K1;  
  9.    M = 255 * (M – K) / K1;  
  10.    Y = 255 * (Y – K) / K1;  
  11. }  
  12.   
  13. // CMYK -> CMY:  
  14. K1 = 1 – K / 255.0f;  
  15. C = C * K1 + K;  
  16. M = M * K1 + K;  
  17. Y = Y * K1 + K;  

CMYK与RGB之间得转换关系为:

[cpp] view plaincopy
  1. // RGB -> CMYK:  
  2. K = min(255 - R, 255 - G, 255 - B);  
  3. if(K >= 255)  
  4.    C = M = Y = 0;  
  5. else  
  6. {  
  7.    float K1 = 255 – K;  
  8.    C = 255 * (255 - R – K) / K1;  
  9.    M = 255 * (255 - G – K) / K1;  
  10.    Y = 255 * (255 - B – K) / K1;  
  11. }  
  12.   
  13. // CMYK -> RGB:  
  14. K1 = 1 – K / 255.0f;  
  15. R = 255 – (C * K1 + K);  
  16. G = 255 – (M * K1 + K);  
  17. B = 255 – (Y * K1 + K);  

颜色空间之HSI:

HSI色彩空间是从人的视觉系统出发,用色调(Hue)、色饱和度(Saturation或Chroma)和亮度 (Intensity或Brightness)来描述色彩。HSI色彩空间可以用一个圆锥空间模型来描述。用这种描述HIS色彩空间的圆锥模型相当复杂,但确能把色调、亮度和色饱和度的变化情形表现得很清楚。通常把色调和饱和度通称为色度,用来表示颜色的类别与深浅程度。由于人的视觉对亮度的敏感 程度远强于对颜色浓淡的敏感程度,为了便于色彩处理和识别,人的视觉系统经常采用HSI色彩空间,它比RGB色彩空间更符合人的视觉特性。在图像处理和计算机视觉中大量算法都可在HSI色彩空间中方便地使用,它们可以分开处理而且是相互独立的。因此,在HSI色彩空间可以大大简化图像分析和处理的工作量。

HSI色彩空间和RGB色彩空间只是同一物理量的不同表示法,因而它们之间存在着转换关系。

RGB -> HSI:

 

 

HSI -> RGB:

其中R = 255 * r; G = 255 * g; B = 255 * b。


颜色空间之XYZ:

国际照明委员会(CIE)在进行了大量正常人视觉测量和统计,1931年建立了"标准色度观察者",从而奠定了现代CIE标准色度学的定量基础。由于"标准色度观察者"用来标定光谱色时出现负刺激值,计算不便,也不易理解,因此1931年CIE在RGB系统基础上,改用三个假想的原色X、Y、Z建立了一个新的色度系统。将它匹配等能光谱的三刺激值,定名为"CIE1931 标准色度观察者光谱三刺激值",简称为"CIE1931标准色度观察者"。这一系统叫做"CIE1931标准色度系统"或称为" 2°视场XYZ色度系统"。CIEXYZ颜色空间稍加变换就可得到Yxy色彩空间,其中Y取三刺激值中Y的值,表示亮度,x、y反映颜色的色度特性。

定义如下:在色彩管理中,选择与设备无关的颜色空间是十分重要的,与设备无关的颜色空间由国际照明委员会(CIE)制定,包括CIEXYZ和CIELAB两个标准。它们包含了人眼所能辨别的全部颜色。而且,CIEYxy测色制的建立给定量的确定颜色创造了条件。但是,在这一空间中,两种不同颜色之间的距离值并不能正确地反映人们色彩感觉差别的大小,也就是说在CIEYxy色厦图中,在不同的位置不同方向上颜色的宽容量是不同的,这就是Yxy颜色空间的不均匀性。这一缺陷的存在,使得在Yxy及XYZ空间不能直观地评价颜色。

RGB与XYZ的转换关系:

[cpp] view plaincopy
  1. // RGB -> XYZ  
  2. R /= 255.0f;  
  3. G /= 255.0f;  
  4. B /= 255.0f;  
  5. X = 0.412453f*R + 0.357580f*G + 0.180423f*B;  
  6. Y = 0.212671f*R + 0.715160f*G + 0.072169f*B;  
  7. Z = 0.019334f*R + 0.119193f*G + 0.950227f*B;  
  8.   
  9. // XYZ -> RGB  
  10. X *= 255.0f;  
  11. Y *= 255.0f;  
  12. Z *= 255.0f;  
  13. R = 3.240479f*X  - 1.537150f*Y - 0.498535f*Z;  
  14. G = -0.969256f*X + 1.875992f*Y + 0.041556f*Z;  
  15. B = 0.055648f*X  - 0.204043f*Y + 1.057311f*Z;
0 0
原创粉丝点击