四川大学 计算机学院 陈 虎 huchen@scu.edu.cn 彩色数字图像基础 四川大学 计算机学院 陈 虎 huchen@scu.edu.cn
视觉系统对颜色的感知 颜色是什么 视觉系统对可见光的感知结果 颜色只存在于眼睛和大脑, 在计算机图像处理中,锥体细胞扮演重要角色 可见光是波长在380~780 nm之间的电磁波,我 们看到的大多数光不是一种波长的光,而是由许 多不同波长的光组合成的,因此有多种颜色的感觉 颜色只存在于眼睛和大脑, 人的视网膜有对红、绿、蓝颜色敏感程度不同的 三种锥体细胞(约有600万到700万个,主要位于视网膜的中间部分) 杆状体细胞在光功率极低的条件下才起作用(约7500万到15000 万个,分布在视网膜表面 ) 在计算机图像处理中,锥体细胞扮演重要角色
视觉系统对颜色的感知 视觉系统对颜色的感知特性 眼睛本质上是一个照相机 人的视网膜(human retina)通过神经元感知外部世界的颜 色,每个神经元是一个对颜色敏感的锥体(cone)
视觉系统对颜色的感知 红、绿和蓝三种锥体细胞对不同频率的光的感知程度不同,对不同亮度的感知程度也不同 这就意味着,人们可以使用数字图像处理技术来降低表示 图像的数据量而不使人感到图像质量有明显下降。 从理论上说,自然界中的任何一种颜色都可以由 R,G,B这三种颜色值之和来确定,它们构成一个三维的RGB矢量空间 这就是说,R,G,B的数值不同,混合得到的颜色就不 同,也就是光波的波长不同
视觉系统对颜色的感知 视觉系统对颜色和亮度的响应特性曲线 (各个波长的光的强度相等)
视觉系统对颜色的感知 上面的颜色响应曲线表明,人类眼睛对蓝光的灵敏度远远低于对红光和绿光的灵敏度。 亮度响应曲线表明人眼对波长为550nm左右的黄绿色最为敏感。
视觉系统对颜色的感知 许多具有不同光谱分布的光产生的视觉效果(颜色)是一样的。即光谱与颜色的对应是多对一的。 光谱分布不同而看上去相同的两种颜色称为条件等色(匹配等色)。 绝大部分可见光谱对眼睛的刺激效果都可以用红(700nm)、绿(546.1)、蓝(435.8nm)三色光按不同比例和强度的混合来等效表示。(三刺激理论)
视觉系统对颜色的感知 匹配任意可见光所需的三原色光比例曲线
视觉系统对颜色的感知 从人的主观感觉角度,颜色包含三个要素: 1、色调(hue): 色调反映颜色的类别,如红色、绿色、蓝色等。色调大致对应光谱分布中的主波长。
视觉系统对颜色的感知 2、饱和度(Saturation) 饱和度是指彩色光所呈现颜色的深浅或纯洁程度。对于同一色调的彩色光,其饱和度越高,颜色就越深,或越纯;而饱和度越小,颜色就越浅,或纯度越低。高饱和度的彩色光可因掺入白光而降低纯度或变浅,变成低饱和度的色光。100%饱和度的色光就代表完全没有混入白光的纯色光。
视觉系统对颜色的感知 3、明亮度(luminance) 明亮度是光作用于人眼时引起的明亮程度的感觉。一般来说,彩色光能量大则显得亮,反之则暗。 大量试验表明,人的眼睛能分辨128种不同的色调,10-30种不同的饱和度,而对亮度非常敏感。人眼大约可以分辨35万种颜色。
人的主观感觉 人的视觉系统能够适应光强度的级别的范围是很宽的,由夜视阈值到强闪光之间的光强度的级别约为1010级 ; 背景亮度会影响到对目标亮度的感觉; 同时对比度(Simultaneous Contrast) 在相同亮度的刺激下,由于背景亮度不同,人眼所感受到的主观亮度不同
颜色模型 颜色模型(color model)是用来精确标定和生成各种颜色的一套规则和定义。某种颜色模型所标定的所有颜色就构成了一个颜色空间。 颜色空间通常用三维模型表示,空间中的颜色通常使用代表三个参数的三维坐标来指定 对于人来说,可以通过色调、饱和度和亮度来定义颜色(HSL颜色模型);对于显示设备来说,可以用红、绿、蓝磷光体的发光量来描述颜色(RGB颜色模型);对于打印设备来说,可以使用青色、品红、黄色和黑色颜料的用量来指定颜色(CMYK颜色模型)。
RGB颜色模型 显示彩色图像用RGB相加混色模型 一个能发出光波的物体称为有源物体,它的颜色由 该物体发出的光波决定 CRT使用3个电子枪分别产生红(red)、绿(green)和蓝(blue)三 种波长的光,如图4-1所示,并以各种不同的相对强度组合 产生不同的颜色
RGB颜色模型 RGB相加混色模型 任何一种颜色都可用三种基本颜色按不同的比例混 合得到 组合红、绿和蓝光波来产生特定颜色的方法叫做相加混色 法(additive color mixture) ,即RGB相加混色模型 相加混色是计算机应用中定义颜色的基本方法 任何一种颜色都可用三种基本颜色按不同的比例混 合得到 颜色=R(红的百分比)+G(绿的百分比)+B(蓝的百分比)
RGB颜色模型 三种颜色的光强越强,到达我们眼睛的光就越多,它们的比例不同,我们看到的颜色也就不同。没有光到达眼睛,就是一片漆黑 当三基色等量相加时,得到白色;等量的红绿相加而蓝为0时得到黄色;等量的红蓝相加而绿为0时得到品红色;等量的绿蓝相加而红为0时得到青色。
RGB颜色模型 彩色图像 一幅彩色图像可以看成是由许多的点组成的 图像中的单个点称为像素(pixel),每个像素都有一个值, 称为像素值,它表示特定颜色的强度
RGB颜色模型 一个像素值通常用R,G,B三个分量表示。如果每个像素 的每个颜色分量“1”和“0”表示,即每种颜色的强度是100% 或0%,每个像素显示的颜色是8种颜色之一。
CMY颜色模型 打印彩色图像用CMY相减混色模型 用这种方法产生的颜色之所以称为相减混色,是因 为它减少了为视觉系统识别颜色所需要的反射光 一个不发光波的物体称为无源物体,它的颜色由该 物体吸收或者反射哪些光波决定用 用彩色墨水或颜料进行混合,绘制的图画是一种无源物 体,用这种方法生成的颜色称为相减色
CMY颜色模型 CMY相减混色模型 用三种基本颜色即青色(cyan)、品红(magenta)和黄色 (yellow)的颜料按一定比例混合得到颜色的方法,通常写 成CMY,称为CMY模型 从理论上说,任何一种颜色都可以用青色(cyan)、品红 (magenta)和黄色(yellow)混合得到 实际上,因为所有打印油墨都会包含一些杂质,这三种油墨混合实际上产生一种土灰色,必须与黑色 (K) 油墨混合才能产生真正的黑色,所以再加入黑色作为基本色形成CMYK颜色模型。
CMY颜色模型 在相减混色中,三基色相减结果如下
CMY颜色模型 按每个像素每种颜色用1位表示,相减法产生的8 种颜色如下所示
相加色与相减色的关系 相加色与相减色是互补色 相加混色和相减混色之间成对出现互补色, 利用它们之间的关系,可把显示的颜色转换成打印的颜色 在RGB中的颜色值为1的地方,在CMY对应的位置上,其颜色 值为0。例如,RGB为0∶1∶0时,对应CMY为1∶0∶1
相加色与相减色的关系
相加色与相减色
RGB模型到CMYK模型的转换 分色算法(F代表白色)
RGB彩色空间和CMY彩色空间 RGB彩色空间和CMY彩色空间的表示法
HSI颜色模型 HSI模型是Munseu提出的, 它反映了人的视觉系统观察彩色的方式,在艺术上经常使用HSI模型。 HSI模型中,H表示色调(Hue),S表示饱和度(Saturation), I表示亮度(Intensity,对应成像亮度和图像灰度)。 这个模型的建立基于两个重要的事实: ① I分量与图像的彩色信息无关; ② H和S分量与人感受颜色的方式是紧密相联的。 这些特点使得HSI模型非常适合借助人的视觉系统来感知彩色特性的图像处理算法。
HSI颜色模型
HIS格式
HSI格式 色相环描述了色相和饱和度两个参数。色相由角度表示,它反映了该彩色最接近什么样的光谱波长。一般假定0°表示的颜色为红色, 120°的为绿色,240°的为蓝色。0°到240°的色相覆盖了所有可见光谱的彩色,在240°到300°之间为人眼可见的非光谱色(紫色)。 饱和度是指一个颜色的鲜明程度,饱和度越高,颜色越深, 如深红,深绿。饱和度参数是色环的原点(圆心)到彩色点的半径的长度。由色相环可以看出,环的边界上纯的或饱和的颜色, 其饱和度值为1。在中心是中性(灰色)阴影, 饱和度为0。
HSI格式
RGB转HSI 其中R、G、B均介于[0,1]
HSI转RGB 1、当H落在[0度,120度]时
HSI转RGB 2、当H落在[120度,240度]时
HSI转RGB 3、当H落在[240度,360度]时
HSI转RGB
HIS和RGB
HIS和RGB
彩色图
RGB
CMKY
HSI
颜色输入
图像的种类 矢量图(vector graphics) 根据数学规则描述而生成的图 一幅图用数学描述的点、线、弧、曲线、多边形和其他几 何实体和几何位置来表示,创建的图是对象的集合而不是点或像素模式的图 绘制和显示矢量图的软件通常称为绘图程序(draw programs);存放矢量图的存储格式称为矢量图格式;存储 的数据主要是绘制图形的数学描述
图像的种类 优点 局限性 目标图像的移动、缩小或放大、旋转、拷贝、属性(如线条 变宽变细、颜色)变更都很容易做到 相同或类似的图可以把它们当作图的构造块,并把它们存 到图库中,这样不仅可加速矢量图的生成,而且可减小矢 量图的文件大小 局限性 很难用数学方法来描述真实世界的彩照,这就要用位图法表示
图像的种类 位图(bitmap,bitmapped image ) 用像素值阵列表示的图 对位图进行操作时,只能对图中的像素进行操作,而不能 把位图中的物体作为独立实体进行操作。也称光栅图 (raster graphics) 画位图或编辑位图的软件称为画图程序(paint programs); 存放位图的格式称为位图格式;存储的内容是描述像素的 数值
图像的种类 矢量图与位图 矢量图 点位图
图像的种类 特性 位图的获取通常用扫描仪、数码相机、摄像机、录像机、 视像光盘和相关的数字化设备 位图文件占据的存储空间比较大 影响位图文件大小的因素 --图像分辨率:分辨率越高,表示组成一幅图的像素就越多, 图像文件就越大 --像素深度:像素深度越深,表达单个像素的颜色和亮度的位 数越多,图像文件就越大
图像的种类 图形图像(graphical image ) 表示图形的位图,即用矢量图表示的图形 转换成用像素表示的 图像 也称矢量图像(vector based image) 用像素值阵列表示的 位图边沿较光滑;用 矢量图转换成的位图边沿较粗糙
图像的种类 灰度图(gray-scale image或intensity image) 只有明暗不同的像素而没有彩色像素组成的图像 只有黑白两种颜色的图像称为单色图像(monochrome/bit image),每个像素的像素值用一位存储,其值是“0”或“1” 一般灰度图用一个字节表示一个像素的 (256级灰度), 一幅640×480的灰度图像需要占据300 KB的存储空间
图像的种类 标准单色图 标准灰度图
图像的种类 彩色图像(color image) 每个像素包含颜色信息的图像。 可按照颜色的数目划分 256色图像:每个像素的R、G和B值用一个字节 来表示,一幅640×480的彩色图像需要300 KB的存储空间 真彩色图像:每个像素的R,G,B分量分别用一 个字节表示,一幅640×480的真彩色图像需要900 KB的存 储空间
图像的种类 256色标准图像 24位标准图像
图像的种类 分辨率 屏幕分辨率(screen resolution) 。 衡量显示设备再现图像时所能达到的精细程度的度量方法。 也称显示分辨率 用“水平像素数×垂直像素数”表示,如640×480表示显示 屏分成480行,每行显示640个像素,整个显示屏含有 307200个显像点 -- 常见的屏幕分辨率: 640×480,800×600,1024×768, 1280×1024 传统电视屏幕的宽高比为4:3;高清晰度电视屏幕的宽高比 为16∶9
图像的属性 图像分辨率(image resolution)。 图像分辨率与屏幕分辨率是两个不同的概念 图像精细程度的度量方法。对同样尺寸的一幅图,如果像 素数目越多,则说明图像的分辨率越高,看起来就越逼真。 相反,图像显得越粗糙 图像分辨率也称空间分辨率(spatial resolution)和像素分辨 率(pixel resolution) 图像分辨率与屏幕分辨率是两个不同的概念 从行列像素角度看,图像分辨率是构成一幅图像的像素数 目,而屏幕分辨率是显示图像的区域大小
图像的属性 在图像显示应用中的图像分辨率表示法 图像数字化和打印应用中的图像分辨率表示法。 (1) 物理尺寸:每毫米线数(或行数) (2) 行列像素:像素/行×行/幅,如640像素/行×480行/幅 (3) 像素总数:如数码相机上标的500万像素 (4) 单位长度上的像素:如像素每英寸(pixels per inch,PPI) (5) 线对(line pair)数:以黑白相邻的两条线为一对,如5对线 图像数字化和打印应用中的图像分辨率表示法。 通常用多少点每英寸(dots per inch,DPI)表示,如300 DPI 分辨率越高,图像质量就越高,像素就越多,要求存储容量 就越大
像素深度与阿尔法(α)通道 图像的属性 存储每个像素所用的位数 例如,用R,G,B三个分量表示的彩色图像,若每个分量用8 位表示,那么一个像素共用24位表示,就说像素深度为24位 像素深度决定彩色图像的每个像素可能有的颜色数, 或者确定灰度图像的每个像素可能有的灰度级数 例如,像素深度为24位时,每个像素可以是224=16 777 216种 颜色中的一种
图像的属性 像素深度越深,表达的颜色数目就越多,所占用的存 储空间也越大。相反,如果像素深度太浅,则影响图像的质量,图像看起来让人觉得很粗糙和很不自然 由于受到设备和人眼分辨率的限制,不一定要追求特 别深的像素深度
图像的属性 阿尔法(α)通道 在每个像素用32位表示的图像表示法中的高8位, 其余24位是颜色通道,红色、绿色和蓝色分量各占 一个8位的通道 用于表示像素在对象中的透明度 例如,用两幅图像A和B混合成一幅新图像,新图像(New) 的像素为:New pixel =(alpha)(pixel A color) +(alpha)(pixel B color) 又如,一个像素(A,R,G,B)的四个分量都用规一化的数 值表示时, 像素值为(1,1,0,0)时显示红色,表示红色强度为1 像素值为(0.5,1,0,0)时,使用α通道中的预乘数0.5 与R,G,B相乘,其结果为(0.5,0.5,0,0),表示红色强 度为0.5
图像的属性 调色板 一个彩色图像假如只包含24位真彩色空间中的16个离散的点(16色图),则可以建立一个颜色查找表,表中的每一行记录一组RGB值,实际像素的值用来指定该点颜色在查找表中的索引值,这样就可以大大缩小存储量。这个颜色查找表就叫做调色板。
图像的属性 真彩色 每个像素的颜色值用红(R)、绿(G)和蓝(B)表示的颜色 通常用24位表示,其颜色数224=16 777 216种。也称24位 颜色(24-bit color)或全彩色(full color)
图像的属性 伪彩色(pseudo color) 不是物体固有的而是人为的颜色 将像素值当作彩色查找表(color look-up table,CLUT)的表 项入口地址,查找显示图像时要使用的R,G,B值,用查 找出的R,G,B值产生的彩色 使用查找得到的R,G,B数值显示的彩色是真的,但不是 图像本身真正的颜色,它没有完全反映原图的颜色
图像的属性 根据一定的准则对灰度值赋以彩色值 将灰度图像转换为彩色图像,提高视觉分辨效果
图像的属性
图像的属性
图像的属性
伽马()校正 一个图像系统中一般包含输入设备(扫描仪、摄像机、数码相机)、存储设备(胶片、磁盘)和输出设备三大模块。 各种涉及到光电转换的设备的输入输出特性曲线一般是非线性的,且表现为幂函数的形式: y=xn 输出=(输入)γ (按照惯例,“输入”和“输出”都缩放到0~1之间)。所以整个图像系统的传递函数是一个幂函数。= 1×2×…×n 一个图像系统追求的目标:真实的再现原始场景。
伽马()校正
伽马()校正
伽马()校正
Photoshop 中提供的Gamma校正功能 伽马()校正 Photoshop 中提供的Gamma校正功能
图像文件格式是存储图形或图像数据的数据结构 图像格式 图像文件格式是存储图形或图像数据的数据结构 BMP文件格式 bitmap的简写 微软公司开发的在Windows环境下的标准位图文件 格式 与设备无关的位图(DIB)文件格式 device-independent bitmap的缩写 像素存储顺序和像素深度与具体设备无关 文件扩展名是.BMP或.bmp
BMP文件格式 文件结构 位图文件头(bitmap-file header) 位图信息头(bitmap-information header) 彩色表(color table) 位图的字节(byte)阵列
BMP文件格式 typedef struct tagBITMAPFILEHEADER { WORD bfType; /* 说明文件的类型 */ DWORD bfSize; /* 说明文件的大小,用字节为单位 */ WORD bfReserved1; /* 保留,设置为0 */ WORD bfReserved2; /* 保留,设置为0 */ DWORD bfOffBits; /* 说明从BITMAPFILEHEADER结构 开始到实际的图像数据之间的字 节 偏移量 */ } BITMAPFILEHEADER;
BMP文件格式 typedef struct tagBITMAPINFOHEADER { DWORD biSize; /* 说明结构体所需字节数 */ LONG biWidth; /* 以像素为单位说明图像的宽度 */ LONG biHeight; /* 以像素为单位说明图像的高速 */ WORD biPlanes; /* 说明位面数,必须为1 */ WORD biBitCount; /* 说明位数/像素,1、2、4、8、24 */ DWORD biCompression; /* 说明图像是否压缩及压缩类型 */ DWORD biSizeImage; /* 以字节为单位说明图像大小 */ LONG biXPelsPerMeter; /* 说明水平分辨率,像素/米 */ LONG biYPelsPerMeter; /* 说明垂直分辨率,像素/米 */ DWORD biClrUsed; /* 说明图像实际用到的颜色数,如果为0 则颜色数为2的biBitCount次方 */ DWORD biClrImportant; /*说明对图像显示有重要影响的颜色 索引的数目,如果是0,表示都重要。*/ } BITMAPINFOHEADER;
BMP文件格式 调色板实际上是一个数组,它所包含的元素与位图所具有的颜色数相同,决定于biClrUsed和biBitCount字段。数组中每个元素的类型是一个RGBQUAD结构。 typedef struct tagRGBQUAD { BYTE rgbBlue; /*指定蓝色分量*/ BYTE rgbGreen; /*指定绿色分量*/ BYTE rgbRed; /*指定红色分量*/ BYTE rgbReserved; /*保留,指定为0*/ } RGBQUAD;
BMP文件格式 紧跟在彩色表之后的是图像数据字节阵列。图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。扫描行是由底向上存储的,这就是说,阵列中的第一个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素。
GIF文件格式 GIF-图形文件交换格式 Graphics Interchange Format的缩写 CompuServe公司开发的图像文件存储格式 1987年开发的版本号为GIF87a 1989年扩充后的版本号为GIF89a 图像的相关信息以数据块(block)为单位 一个GIF文件由表示图形/图像的数据块、数据子块以及显 示图形/图像的控制信息块组成
GIF文件格式 在一个文件中可存放多幅彩色图形/图像,并可像幻 灯片那样显示或像动画那样演示 采用LZW压缩算法来压缩图像数据 用户可为图像设置透明(transparency)的背景 GIF文件定义的图像中可以加入文本。 支持图像数据的交叉存储方式,这样一个大的图像可以逐步显示,让用户首先看到图像概貌,然后逐步清晰
GIF文件格式 1 GIF文件头 2 逻辑屏幕描述块 3 全局颜色表 扩展模块(任选) 4 图像描述块 5 局部颜色表 可 6 Header GIF文件头 2 Logical Screen Descriptor 逻辑屏幕描述块 3 Gloabal Color Table 全局颜色表 。。。。。。 扩展模块(任选) 4 Image Descriptor 图像描述块 5 Local Color Table 局部颜色表 可 6 Table Based Image Data 表基压缩图像数据 重 7 Graphic Control Extension 图像控制扩展块 复 8 Plain Text Extension 无格式文本扩展块 n 9 Comment Extension 注释扩展块 次 10 Application Extension 应用程序扩展块 11 GIF Trailer GIF文件结束快
GIF文件格式
JPEG格式 JPEG格式 Joint Photographic Experts Group的缩写 JPEG委员会在制定JPEG标准时定义了许多标记 (marker),用来区分和识别图像数据及其相关信息 广泛使用的JPEG文件格式是JPEG文件交换格式 (JPEG File Interchange Format,JFIF),版本号为 1.02,这是1992年9月由在C-Cube Microsystems公司 工作的Eric Hamilton提出的 由于JFIF文件格式直接使用JPEG标准为应用程序定 义的许多标记,因此JFIF格式就成了事实上的JPEG 文件交换格式标准
PNG格式 PNG格式——便携网络图形格式 Portable Network Graphic Format的简称 20世纪90年代中期开始开发的图像文件存储格式, 其目的是企图替代GIF和TIFF文件格式,同时增加 一些GIF文件格式所不具备的特性 名称来源于非官方的“PNG‘s Not GIF”,是一种位图 文件(bitmap file)存储格式 用来存储灰度图像时,灰度图像的深度可多达16 位,存储彩色图像时,彩色图像的深度可多达48 位,并且还可存储多达16位的α通道数据 PNG使用从LZ77派生的数据无损压缩算法
PNG格式 保留的GIF文件格式特性 使用彩色查找表或称调色板,支持256种颜色的彩色图像 流式读/写性能(streamability):允许连续读出和写入图像数 据,这个特性很适合于在通信过程中生成和显示图像 逐次逼近显示(progressive display):可使在通信链路上传 输图像文件的同时就在终端上显示图像,把整个轮廓显示 出来之后逐步显示图像的细节,也就是先用低分辨率显示 图像,然后逐步提高它的分辨率
PNG格式 透明性(transparency):可使图像中某些部分不显示,以创 建一些有特色的图像 辅助信息(ancillary information):可用来在图像文件中存储 一些文本注释信息 独立于计算机软硬件环境 使用无损压缩。
PNG格式 增加的GIF文件格式所没有的特性: 每个像素为48位的真彩色图像 每个像素为16位的灰度图像 可为灰度图和真彩色图添加α通道 添加图像的γ信息 使用循环冗余码(cyclic redundancy code,CRC)检 测损害的文件 加快图像显示的逐次逼近显示方式。 标准的读/写工具包