第 2 讲 计算机中的颜色表示 1 如何刻画颜色 2 如何计算颜色
如何 “ 刻画 ” 颜色
什么是颜色 颜色属于物理学和生物心理学范畴 它是由于光经过与周围环境相互作用后到达人眼, 并经过一系列物理和化学变化转化为人眼所能感知 的电脉冲的结果 颜色的形成是一个复杂的物理和心理相互作用的过 程,它涉及到光的传播特性、人眼结构及人脑心理 感知等内容
什么是颜色模型 颜色模型是一种在某种特定上下文中对颜色的特性和行 为的解释方法 没有一种颜色模型能解释所有的颜色问题;要使用不 同的模型来帮助说明能看到的不同的颜色特征 在图形应用中, 某些颜色模型用于在打印机和绘图仪上输出彩色( 如 CMYK ) 另一些颜色模型则为用户提供更直觉的颜色参数( 如 RGB 用于显示器颜色输出)
光的颜色特性 可见光是电磁光谱(包括无线电波、微波、红外波和 x 射线)中狭窄 的频率波段,段的每一频率对应一种颜色: 在低频率端是红色;高频率端是紫色 低频到高频的光谱颜色变化分别是红、橙、黄、绿、青、蓝和紫 从红色到紫色的每一频率成份有不同能量 适当选择两种或多种初始颜色光源可形成许多其它颜色
光的颜色描述 光是一种电磁波,常用波长或频率来说明各种颜色,由于 波长比频率容易处理,故光谱颜色常用波长来指定 单色光的频率和波长互成反比例。 太阳或灯泡等光源发射可见段的全部频率产生白色 当白色光投射到物体上时,某些频率被反射、某些则 被物体吸收,在反射光中混合的频率确定了所感受到 的物体的颜色 比如在反射光中如果以低频率为主,则物体呈现红 色
颜色描述 如果两种彩色光源混合成白色光就被称为互补色 互补色的例子有:红色和青色、绿色和品红 以及蓝色和黄色 (注:黄蓝两种颜料混合后显示绿色 。这与色光的加色混合不同) 以主频率为基础的混合颜色模型使用三种颜色可 获得一定范围的颜色,称为模型的颜色范围 (color gamut) 在颜色模型中用来生成其他颜色的两种或三种颜 色称为基色 (primitive color)
颜色描述 人眼对颜色 ( 或色度 / 主频率 ) 、明度和纯度三种特征敏感, 因此从这三个特征对颜色进行刻画 明度 (brightness) 人感受到的物体的光亮度,单位时间、单位角度及 单位投射面上光源幅射的能量 光纯度 (purity) 或饱和度 (saturation) 纯度说明光的颜色表现得多纯,淡颜色说明不太纯 色度 (chromaticity) 决定颜色的基本色彩
物理彩色描述 从物理学 ( 色彩学 ) 角度,颜色以主波长 (Dominant wavelength) 、色纯度 (Purity) 和亮度来描述 主波长:决定颜色的基本色彩 色纯度:反映该颜色中纯色光与白色光的比例 亮度:就是颜色光的强度 主波长、色纯度和亮度描述了产生某种颜色的光的特性 光与颜色之间存在着一定的对应关系,那么描述一束光 也就等价于描述了它所对应的颜色
2-10 物理彩色描述 颜色描述需要三个量,颜色空间通常可定义为三维的 三基色:任意互不相关 ( 任意两种的组合不能产生三种 中的另一种颜色 ) 的三种颜色构成颜色空间的一组基 最常用的三基色是红色 R 、绿色 G 与蓝色 B 三基色通过适当的混合能产生所有的(?)颜色 二基色呢?
如何 “ 计算 ” 颜色
2-12 颜色模型( color model ) 图形系统需要颜色 软件需要提供色彩参数并让人输入和控制 硬件需要模拟颜色并让人看到(显示 / 打印) 颜色模型:通过选择若干种初始颜色并用它们混 合后得到一定范围内的颜色. 任何一种模型不可能表示所有的颜色效果 加色 / 减色系统(模型)
2-13 颜色模型( color model ) 颜色模型所标定的所有颜色构成了颜色空间 XYZ , LAB :与设备无关,表示理论上所有颜色 RGB :与显示设备相关 CMY :与印刷设备相关 YUV , YIQ , YCbCr :与电视设备相关 HSV , HSI :强度 / 饱和度 / 色调,也是设备相关, 从 RGB 演化来,易于指定颜色,符合人类视觉 相互转换会有误差(因为色彩范围不同)
2-14 实验发现,很多颜色的光无法用 RGB 三种原色相加 来获得。例如, 500nm 颜色 =G+B-R
2-15 CIE 1931 XYZ 颜色模型(加色) CIE( 国际照明委员会 ) 定义了三种标准基色 XYZ 和一组 输出为正值的颜色匹配函数(所用每种基色的量),不 是自然的颜色,是数学上的颜色分量 每一种颜色都可以表示 成 X , Y 和 Z 的混合。 CIE 1931 标准颜色匹配函数 C=xX+yY+zZ X、Y和Z表示三维加色空间向量 ( 即三种基色 ) ; x、y、z指为匹配 F 所需标准基色的量 ( 权 ) ;
2-16 标准基色函数 通过基色权向量 (X,Y,Z) 的规范化来定义其色 度坐标 (x,y,z) XYZ 颜色空间 注意: x+y+z=1→ (x,y,z) 落在 X+Y+Z=1 平面上 只要已知色度坐标 (x,y) 就可表示所有颜色,因: z=1-x-y 只要已知色度坐标 (x,y) 就可表示所有颜色,因: z=1-x-y
2-17 CIE-XYZ 色度图 CIE-XYZ 色度图:将 X+Y+Z=1 平面 投影到 XY 平面上,即可绘出可见光 谱中的颜色的色度值 x 和 y 它是一条舌头状的曲线,其边界 和内部表示所有可见光的色度值 曲线边界上的点对应于色纯度为 100% 的纯彩色 线上标明的数字表示该位置所对 应单色光的主波长
2-18 CIE-XYZ 色度图 内部的点表示所有可能的可见颜 色的组合 C 点对应于亮白色位置,其色 度坐标近似但不等于 (1/3,1/3,1/3) 实际上,这一点作为白光源 ,称为 C 照明体,它是平均日 光的近似标准 连接红色和紫色光谱点的直线称 为紫色线,它不属于光谱
2-19 色度图颜色范围 色度图中的颜色范围表示成直线段 或多边形 两点的颜色范围是一条直线 C1 到 C2 连线上的所有颜色可通 过混合适量的 C1 和 C2 颜色而得 到 如果 C1 占的比例大些则结果色 比较接近 C1 ,而离 C2 较远
2-20 色度图颜色范围 – 三点 C3, C4 和 C5 的颜色范围是该三点 连成的三角形 三基色只能产生在三角形内部或边上的颜 色 – 图中不可能有一个三角形能包含所有 颜色 没有一个三基色组可以通过加色混合生成 所有颜色 对任意三种可见光所产生的颜色 ( 落在舌形 区域内 ) ,它们的三角形颜色区域不可能覆 盖整个舌形区域,意味着它们不能混合产 生所有的颜色
2-21 色度图颜色特性 互补色在色度图上一定表示成位于 C 的相反方向,且通过 C 的直线连 接的两个点 C 3 、 C 4 当混合这两个点将得到白色 二基色颜色范围可确定一种颜色的 主波长 从 C 通过 C 1 画一根直线与光谱曲 线相交于 Cs 颜色 C 1 可表示成光 C 与光谱颜色 Cs 的混合;因此, C 1 的主波长 就是 Cs
2-22 色度图颜色特性 C 1 点的颜色纯度可通过沿 C 到 Cs 的直线计算 C 1 到 C 的相对位置来 确定: d c1 表示从 C 到 C 1 的距离 d cs 表示 C 到 Cs 的距离 比率 d c1 /d cs 来计算纯度
2-23 色度图紫光线 C 与紫红线之间的颜色点 C 2 的主 波长的计算方法 : 从 C 经过 C 2 画一 根直线,得到紫红线上点 Cp Cp 并不在可见光谱中 点 C 2 称为非光谱颜色,它的主波 长从位于光谱曲线上的 Cp 的补点 ( 点 Csp) 获得 非光谱颜色是在紫 — 品红范围内 并具有从白光减去主波长 ( 如 Csp) 的光谱分布
2-24 色度图小结 色度图主要用于: 计算所给基色组的整个颜色范 围;其中颜色范围表示成直线 段或多边形 计算互补颜色 确定指定颜色的主波长 计算所给颜色的纯度
2-25 CIE XYZ ( xyY )颜色模型小结 z=1-x-y, X = Y, xyxy zyzy Z = Y Y值表示人眼对亮度的响应。其值与 XYZ 中的 Y 刺激值一致。 x 和 y 为色度坐标值,和色彩、纯度有关,并可以确定 z C=xX+yY+zZ ←
2-26 RGB 颜色模型 ( 加色) 三刺激理论, 设备相关 630nm( 红 ) 530nm( 绿 ) 450nm (兰) 对视网膜锥状细胞刺激最强 C( )=rR+gG+bB r,g,b: 0-1 RGB 立方体 R G B 品红 (1,0,1) 黄 红 绿 (0,1,0) 黑 (0,0,0) 青 (0,1,1) 白 (1,1,1) 蓝 (0,0,1) (1,0,0) (1,1,0)
2-27 RGB 颜色立方体
2-28 不同 RGB 模型及其和 XYZ 转换 对于不同光源( D50 , D65 )和 RGB 空间的不同 实现(比如 sRGB , AdobeRGB ) 例如: X= R G B Y= R G B Z= R G B
2-29 CMY 颜色模型(减色) 三基色:青 Cyan ,品红 Magenta ,黄 Yellow 光从青 ( 品红 / 黄 ) 色墨水中反射出时,一定不含红 ( 绿 / 蓝 ) 色成分 适合于往硬拷贝上输出 和 RGB 模型之间的转换 四个墨盒 CMYK ( K :黑色) C M 绿 (1,0,1) 蓝 品红 (0,1,0) 白 (0,0,0) 红 (0,1,1) 黑 (1,1,1) 黄 (0,0,1) 青 (1,0,0) (1,1,0) Y CMYCMY RGBRGB = - 白色 C’ M’ Y’ CMYCMY KKKKKK = - K = min(C,M,Y)
2-30 YUV,YIQ 颜色模型(加色) 适用于电视监视器的组合信号颜色模型 YUV: Y 表示亮度, UV 用来表示色差, U 、 V 是构成彩 色的两个分量。 YIQ: Y 表示亮度,以 I 轴表示人眼最为敏感的色轴, 而以与之垂直的 Q 轴表示最不为敏感的色轴。
2-31 R 分量 G 分量 B 分量
2-32 YC b C r Y 表示亮度, Cb 和 Cr 表示两个颜色分量 在计算机视觉 \ 图像处理中有较多应用 ITU-R BT.601 ( 国际电信联盟制定的协议标准) 和 RGB[0-255] 之间的转换 —— Y = 0.257*R *G *B + 16( 亮度 ) Cb= *R *G *B Cr = 0.439*R *G *B + 128
2-33 面向视觉感知的颜色模型 HSI( 色调、饱和度、亮度) HSV ( 色调、饱和度、明度) I 或 V 分量与图像的彩色信息无关 H 和 S 分量反应了色彩本质,符合人感受颜色的方 式 更好的避免颜色受到光照明暗等条件的干扰 常用于计算机视觉领域的图像视频处理等
2-34 HSI H : 为角度,从 0 到 360 ; S : 从 0 到 1 , S = 0 时只有灰度; I : I 从 0 到 1 , 0 是黑色, 1 是白色
2-35 HIS 模型 HSI RGB RGB HSI R 分量 G 分量 B 分量 H 分量 S 分量 I 分量
2-36 HSI 和 RGB R 分量 G 分量 B 分量 H 分量 I 分量 S 分量
2-37 HSV 颜色模型 色彩 / 调 (Hue) 饱和度 (Saturation) 明度 (Value of Brightness ) HSV 模型的三维表示 —— 品红 绿 黄 红青 蓝 V=0 黑 V( 明度 ) 白 (v=1) 色彩角 H s 黑 白 饱和度 S 明暗 纯色彩 s=1,v=1 色泽 色调 V( 明度 )
2-38 小结。。。 选择合适的颜色模型, 了解 : 用什么参数可以获得什么颜色 什么颜色可以分解为什么分量 最常用最简单, OpenGL 直接支持的: RGB 所有图元都具有的属性: RGB 颜色 颜色最终体现在扫描转换生成的 “ 像素 ” 中