颜色模型 计算机科学与技术系
概述 使用透视投影绘制的三维物体已经具有近大远小的立体效果,经过背面剔除和z-buffer消隐后,初步生成了具有较强立体感的图形,但要模拟真实物体,还必须为其表面添加材质、映射纹理、施加光照、绘制阴影后才能产生真实感图形(photorealism computer graphics)。 真实感图形是计算机图形学的核心任务之一 采用计算机图形学技术绘制的真实感图形像照片一样真实
概述 计算机图形学显示真实感图形的方法与传统的照相过程相似 确定照相机(视点) 选择场景(确定观察空间) 拍摄(一系列图形变换,对场景投影变换) 冲洗(根据光照、材质、纹理等模型显示场景在计算机屏幕上)
感受颜色 颜色由电磁波长决定,亮度由振幅决定 物体颜色 电磁波产生紫(390纳米)、青、蓝、绿、黄、橙、红(720纳米)感觉 ldhgf 没有光,没有颜色 吸收光源光线中其它成分,反射橘黄色光。
感受颜色 人眼的视网膜包含两种视觉感知细胞 视锥细胞:对明亮光线敏感,分辩物体细节和颜色 视杆细胞:对微弱光线敏感 红、绿、蓝三原色是基于人眼视觉颜色感知的三刺激理论设计,因为人眼视网膜上三个视锥细胞,分别对红绿蓝三种光最为敏感 三原色性质由两个性质: 以适当比例混合可以得到白色,三原色中的任何两种原色的组合都得不到第三种颜色 通过三原色的混合可以得到可见光谱中的任何一种颜色
标准基色与色彩图 CIE (国际照明委员会) 1931年定义三种标准基色和一组彩色匹配函数,称为 XYZ 颜色模型。 任何一种可以混出的色彩 Cl 都可以表示为: 如何用数值方法准确描述的颜色? 其中X,Y,Z 称为标准基色, x, y, z 为配出Cλ 所需的标准基色的量。
C I E 色度图 为便于讨论颜色的性质,可以对配色比例进行归一化处理,定义: 并取 x+y+z=1, 则任意可配出的颜色可用 x和 y来表示,称为颜色的色度值。 为对配出颜色的亮度 (辐射量) 进行衡量,还需要定义亮度规范,通常取 Y值作为亮度的规范,于是其余两个配色量可表示为: ldhgf 从衡量颜色的角度,可以用(x, y) 的二维空间位置表示颜色,称 CIE 色度图
C I E 色度图 色度图的翼形轮廓线代表所有可见光波长的轨迹,即可见光谱曲线。 沿线的数字表示该位置的可见光的主波长 ldhgf 中央的C对应于近似太阳光的标准白光,C点接近于但不等于x=y=z=1/3的点 连接光谱轨迹两端点的直线称为紫色线
颜色模型 光的颜色特性 波长 - 色度(hue) 明亮度 -亮度(luminance) 纯度 -饱和度(saturation) 色度是一种颜色区别于其它颜色的基本要素,如红、绿、蓝、紫等,当人们谈论颜色时,实际上是指它的色调。 ldhgf 饱和度是指颜色的纯度,纯色是没有与任何颜色相混合的颜色,纯度为全饱和。在某种颜色中加入白色相当于降低了该颜色的饱和度,鲜红色饱和度高,粉红色饱和度低。 亮度是光照的强度。
原色系统 计算机图形学中有两个重要的原色系统: 红(red)、绿(green)、蓝(blue)加色系统 青(cyan)、品红(magenta)、黄(yellow)的减色系统 RGB加色系统 CMY减色系统
原色系统 互补色 补色指完全不包含另一种颜色
RGB颜色模型 RGB颜色模型是显示器的物理模型,无论软件开发中使用何种颜色模型,只要是绘制到显示器上,图像最终是以RGB颜色模型表示的。 描述 RGB 三色混合颜色的模型称为 RGB 颜色模型,可配出的颜色 Cλ 表为: Cλ= r · R+ g · G + b · B B G R 其中向量 R,G,B 代表三个元色坐标轴上的单位向量(归一化) ldhgf RGB 模型可用一个单位立方体表示,坐标原点代表黑色,而(1, 1, 1) 代表白色。落在坐标轴上的顶点代表三个基色,而其余的顶点则代表每个基色的互补色。立方体的对角线为灰度线。
CMY颜色模型 在印刷时,由于是靠颜料吸收白光中的某些成分而产生颜色,所以需要采用减色处理。为规定各颜料的比例,常用 CMY(K) 模型进行计算和转换。其配色方程为: M Y C 品红(1,0,1) 蓝(0,0,1) 红(1,0,0) 黑(0,0,0) 黄(1,1,0) 白(1,1,1) 绿(0,1,0) 青(0,1,1) 或 CMY系统与 RGB 系统的关系可表为: ldhgf C,M,Y 坐标系中的单位立方体表示
CMY颜色模型的应用 CMYK也称作印刷颜色模型,顾名思义就是用来印刷的。在印刷品上看到的图像,就使用了CMYK模型。其中K表示黑色(black),之所以不使用黑色的首字母B,是为了避免与蓝色(Blue)混淆。 从理论上讲,只需要CMY三种油墨就足够了,浓度为100%的三种油墨加在一起就可以得到黑色。但是由于目前工艺还不能造出高纯度的油墨,CMY相加的结果实际是一种“灰”黑色。 由于使用一种黑色油墨要比使用青色、品红和黄色三种油墨便宜,所以黑色油墨被用于代替等量的青色、品红和黄色油墨。这就是四色套印工艺采用的CMYK模型的理由。
HSV颜色模型 HSV颜色模型是一种直观的颜色模型 先选择一种光来调色,然后通过加入一定量的白色和黑色来获得不同的明暗、色彩和色泽。这种关系可以用色调 (Hue), 饱和度(Saturation) 和明暗度 (Value) 来描述, 即HSV. 色调H是一种颜色区别于其它颜色的基本要素,如红、橙、黄、绿、青、蓝、紫等,当人们谈论颜色时,实际上是指它的色调,特别地,黑色和白色无色调。 饱和度S是指颜色的纯度。没有与任何颜色相混合的颜色,其纯度为全饱和。要想降低饱和度可以在当前颜色中加入白色,鲜红色饱和度高,粉红色饱和度低。 明度V是颜色的相对明暗程度。要想降低明度则可以在当前颜色中加入黑色,明度最高得到纯白,最低得到纯黑。 ldhgf
HSV模型 HSV模型是从RGB立方体演化而来 。沿RGB立方体的主对角线由白色向黑色看去,在平面上的投影构成一个正六边形,RGB三原色和相应的补色分别位于正六边形的各个顶点上,其中红色、绿色、蓝色分别相隔120°,互补色相隔180°(红色与青色、黄色与蓝色、绿色与品红分别相隔180°)。 红 绿 蓝 黄 黑 青 白 品红 HSV正六边形 HSV锥体
HSV模型 HSV模型的立体表示如图示,在使用时首先指定色彩角H,且令V=S=1,然后,通过加入黑色(减小V)和白色(减小S)来调配出所需的颜色。 H(色角)红色:0o;绿色:120o;蓝色:240o 红 绿 蓝 黄 黑 青 白 品红 S H V V(明暗度):黑=0;白=1; S(饱和度):纯色=1,白色=0
RGB和HSV的对应关系 在计算机视觉中,RGB并不是那么的稳定,因为这个颜色表示容易受到强光,弱光,阴影等因素的影响。相比之下,HSV空间面对这些光照的变化更稳定一些,能很好的反应颜色的本质。
计算机颜色 如果屏幕上每个像素的颜色只用一位(Bit)表示,其值非0即1,屏幕只能显示黑白二色图像,称为黑白显示器,此时帧缓冲器只有一个位面。 如果屏幕分辨率为1024×768,则黑白显示器的帧缓冲容量是1024×768×1=786,432位
计算机颜色 如果每个像素的颜色可以用一个字节(Byte)表示,帧缓冲器需要用八个位面,可表示256种灰度,称为灰度显示器。 如屏幕分辨率为1024×768,则灰度显示器的帧缓冲的容量是1024×768×8=6,291,456位。 8个bit
计算机颜色 如果每个像素用R、G、B三原色混合表示,其中每种原色分别用一个字节表示,各对应一把电子枪,每种颜色可有256种亮度,三种颜色的组合是224颜色,共有24个位面,彩色显示器。 如屏幕分辨率为1024×768,则彩色显示器的帧缓冲的容量是1024×768×8×3=18,874,368位
24个位面帧缓冲器
256级灰度来记录图像中的透明度信息,定义透明-黑色、不透明-白色和半透明区域-灰色 (光栅显示器)屏幕颜色的计算机表示 每个象素占三字节24 位面--24位真彩色 R 0 – 255;G 0 – 255;B 0 – 255 共可显示224 = 16777216种不同的颜色 每个象素占四字节- 32位真彩色 R 0 – 256;G 0 – 256;B 0 – 256;Alpha通道 0 - 256 共可显示224 = 16777216种不同的颜色 256级灰度来记录图像中的透明度信息,定义透明-黑色、不透明-白色和半透明区域-灰色
OpenGL中使用颜色模型 RGB模式,有R、G、B三个分量,取值范围为0.0~1.0,而A值采用默认值1 RGBA模式,有R、G、B、A四个分量,其中A即Alpha值,与透明度有关,默认值为1。取值范围为0.0(完全透明)~1.0(不透明)。 glClearColor(red, green, blue, alpha) glColor3f(0.0f, 1.0f, 1.0f); glColor4f(0.0f, 1.0f, 1.0f, 1.0f);