《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版).docx》由会员分享,可在线阅读,更多相关《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版).docx(17页珍藏版)》请在优知文库上搜索。
1、数字图像处理与机器视觉VisualC+与MatIab实现(第2版)1.第O章初识数字图像处理与机器视觉第O章初识数字图像处理与机器视觉图像是指能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等。图像的要素有几何要素(刻画对象的轮廓、形状等)和非几何要素(刻画对象的颜色、材质等)。本章中,主要讲解数字图像和数字图像处理的实质内容和一般步骤,以及一些后面会经常使用到的基本概念。0.1数字图像自然界中的图像都是模拟量,在计算机普遍应用之前,电视、电影、照相机等图像记录与传输设备都是使用模拟信号对图像进行处理。但是,计算机只能处理数字量,而不能直接处理模拟图像
2、。所以要在使用计算机处理图像之前进行图像数字化。0.1.1什么是数字图像简单地说,数字图像就是能够在计算机上显示和处理的图像,可根据其特性分为两大类位图和矢量图。位图通常使用数字阵列来表示,常见格式有BMP、JPG、GlF等;矢量图由矢量数据库表示,接触最多的就是PNG图形。提示本书只涉及数字图像中位图图像的处理与识别,如无特别说明,后文提到的“图像,和“数字图像,都仅仅是指位图图像。一般而言,使用数字摄像机或数字照相机得到的图像都是位图图像。将一幅图像视为一个二维函数f(,y),其中X和y是空间坐标,而在-y平面中的任意一对空间坐标(,y)上的幅值例为该点图像的灰度、亮度或强度。此时,如果f
3、、x、y均为非负有限离散,则称该图像为数字图像(位图)。一个大小为MXN数字图像是由M行N列的有限元素组成的,每个元素都有特定的位置和幅值,代表了其所在行列位置上的图像物理信息,如灰度和色彩等。这些元素称为图像元素或像素。0.1.2数字图像的显示不论是CRT显示器还是LCD显示器,都是由许多点构成的,显示图像时这些点对应着图像的像素,称显示器为位映像设备。所谓位映像,就是一个二维的像素矩阵,而位图也就是采用位映像方法显示和存储的图像。当一幅数字图像被放大后就可以明显地看出图像是由很多方格形状的像素构成的,如图(M所示。图0.1位图图像示例0.1.3数字图像的分类根据每个像素所代表信息的不同,可
4、将图像分为二值图像、灰度图像、RGB图像以及索引图像等。1 .二值图像每个像素只有黑、白两种颜色的图像称为二值图像。在二值图像中,像素只有。和1两种取值,一般用0来表示黑色,用1表示白色。2 .灰度图像在二值图像中进一步加入许多介于黑色与白色之间的颜色深度,就构成了灰度图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,每种灰度(颜色深度)称为一个灰度级,通常用L表示。在灰度图像中,像素可以取0Ll之间的整数值,根据保存灰度数值所使用的数据类型不同,可能有256种取值或者说2卜种取值,当k=l时即退化为二值图像。3 .RGB图像众所周知,自然界中几乎所有颜色都可以由红(Red,R)、绿(Gr
5、een,G)、蓝(Blue,B)3种颜色组合而成,通常称它们为RGB三原色。计算机显示彩色图像时采用最多的就学RGB模型,对于每个像素,通过控制R、G、B三原色的合成比例决定该像素的最终显示颜色。对于三原色RGB中的每一种颜色,可以像灰度图那样使用L个等级来表示含有这种颜色成分的多少。例如对于含有256个等级的红色,。表示不含红色成分,255表示含有100%的红色成分。同样,绿色和蓝色也可以划分为256个等级。这样每种原色可以用8位二进制数据表示,于是3原色总共需要24位二进制数,这样能够表示出的颜色种类数目为256256256=224i大约有1600万种,已经远远超过普通人所能分辨出的颜色数
6、目。RGB颜色代码可以使用十六进制数减少书写长度,按照两位一组的方式依次书写R、G、B三种颜色的级别。例如:OXFFoOoO代表纯红色,OXoOFFOO代表纯绿色,而OXOOFFFF是青色(这是绿色和蓝色的加和)。当RGB三种颜色的浓度一致时,所表示的颜色就退化为灰度,比如0x808080就是50%的灰色,OXOOOoOO为黑色,而OXFFFFFF为白色。常见颜色的RGB组合值如表0.1所示。表0l常见颜色的RGB组合值颜色RGB红(OxFFOOOO)25500蓝(OxOOFFOO)02550绿(OxOOOOFF)00255黄(OxFFFFOO)2552550紫(OxFFOOFF)255025
7、5青(OxOOFFFF)0255255白(OxFFFFFF)255255255黑(0x000000)000灰(0x808080)128128128未经压缩的原始BMP文件就是使用RGB标准给出的3个数值来存储图像数据的,称为RGB图像。在RGB图像中每个像素都是用24位二进制数表示,故也称为24位真彩色图像。4索引图像如果对每个像素都直接使用24位二进制数表示,图像文件的体积将变得十分庞大。来看一个例子,对一个长、宽各为200像素,颜色数为16的彩色图像,每个像素都用RGB三个分量表示。这样每个像素由3个字节表示,整个图像就是2002003=12()kB这种完全未经压缩的表示方式,浪费了大量的
8、存储空间,下面简单介绍另一种更节省空间的存储方式:索引图像。同样还是对200x200像素的16色图像,由于这张图片中最多只有16种颜色,那么可以用一张颜色表(16x3的二维数组)保存这16种颜色对应的RGB值,在表示图像的矩阵中使用那16种颜色在颜色表中的索引(偏移量)作为数据写入相应的行列位置。例如,颜色表中第3个元素为OXAAIl11,那么在图像中所有颜色为OXAAIlIl的像素均可以由31=2表示(颜色表索引下标从0开始)。这样一来,每一个像素所需要使用的二进制数就仅仅为4位(0.5字节),从而整个图像只需要2002000.5=2OkB就可以存储,而不会影响显示质上文所指的颜色表就是常说
9、的调色板(Palette),另一种说法叫作颜色查找表(LookUpTable,LUT)oWindoWS位图中应用到了调色板技术。其实不仅是WindoWS位图,许多其他的图像文件格式比如PCX、TIFxGlF都应用了这种技术。在实际应用中,调色板中通常只有少于256种的颜色。在使用许多图像编辑工具生成或者编辑GIF文件的时候,常常会提示用户选择文件包含的颜色数目。当选择较低的颜色数目时,将会有效地降低图像文件的体积,但也会一定程度上降低图像的质量。使用调色板技术可以减小图像文件体积的条件是图像的像素数目相对较多,而颜色种类相对较少。如果一个图像中用到了全部的24位真彩色,对其使用颜色查找表技术是
10、完全没有意义的,单纯从颜色角度对其进行压缩是不可能的。0.1.4数字图像的实质实际上,0.1.1小节中对于数字图像f(,y)的定义仅适用于最为一般的情况,即静态的灰度图像。更严格地说,数字图像可以是2个变量(对于静止图像,StaticImage)或3个变量(对于动态画面,VideoSequence)的离散函数。在静态图像的情况下是f(xj),而如果是动态画面,则还需要时间参数1,即函数值可能是一个数值(对于灰度图像),也可能是一个向量(对于彩色图像)。提示静态的灰度图像是本书研究的主要对象,对于函数值为向量的情况会在第9章彩色图像处理中阐述。图像处理是一个涉及诸多研究领域的交叉学科,下面就从不
11、同的角度来审视数字图像。(1)从线性代数和矩阵论的角度,数字图像就是一个由图像信息组成的二维矩阵,矩阵的每个元素代表对应位置上的图像亮度和/或色彩信息。当然,这个二维矩阵在数据表示和存储上可能不是二维的,这是因为每个单位位置的图像信息可能需要不只一个数值来表示,这样可能需要一个三维矩阵来对其进行表示(参见1.2节关于Matlab中RGB图像表示的介绍)。(2)由于随机变化和噪声的原因,图像在本质上是统计性的。因而有时将图像函数作为随机过程的实现来观察其存在的优越性。这时有关图像信息量和冗余的问题可以用概率分布和相关函数来描述和考虑。例如,如果知道概率分布,可以用炳(Entropy)Ha来度量图
12、像的信息量,这是信息论中一个重要的思想。(3)从线性系统的角度考虑,图像及其处理也可以表示为用狄拉克冲激公式表达的点展开函数的叠加,在使用这种方式对图像进行表示时,可以采用成熟的线性系统理论研究。在大多数时候,都考虑使用线性系统近似的方式对图像进行近似处理以简化算法。虽然实际的图像并不是线性的,但是图像坐标和图像函数的取值都是有限的和非连续的。0.1.5数字图像的表示为了表述像素之间的相对和绝对位置,通常还需要对像素的位置进行坐标约定。本书中所使用的坐标约定如图02所示。但在MATLAB中坐标的约定会有变化,具体请参见1.1.5小节。N-I原点O123尸图02数字图像的坐标约定在这之后,一幅物
13、理图像就被转化成了数字矩阵,从而成为计算机能够处理的对象了。数字图像f的矩阵表示如下所示。/(O,O)/(O,N-I)-f(ya)=:,.:/(-1,O)/(-1,jV-1)(0-1)有时也可以使用传统矩阵表示法来表示数字图像和像素,如下式所示。OaOoo,-i-4=:.:-l,-l.(0-2)其中行列(M行N列)必须为正整数,而离散灰度级数目L一般为2的k次帚,k为整数(因为使用二进制整数值表示灰度值),图像的动态范围为O,L1,那么图像存储所需的比特数为b=MxNxko注意到在矩阵f(y,)中,一般习惯于先行下标,后列下标的表示方法,因此这里先是纵坐标y(对应行),然后才是横坐械(对应列)
14、。而有些图像矩阵中,很多像素的值都是相同的。例如在一个纯黑背景上使用不同灰度勾勒的图像,大多数像素的值都会是0。这种矩阵称为稀疏矩阵(SparseMatrix),可以通过简单描述非零元素的值和位置来代替,大量地写入0元素。这时存储图像需要的比特数可能会大大或少。0.1.6图像的空间和灰度级分辨率1 图像的空间分辨率(SpatialResolution)图像的空间分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸(pixelsperinch,ppi)为单位来表示。如72ppi表示图像中每英寸包含72个像素或点。分辨率越高,图像将越清晰,图像文件所需的磁盘空间也越大,编辑和处理所需的
15、时间也越定。像素越小,单位长度所包含的像素数据就越多,分辨率也就越高,但同样物理大小范围内所对应图像的尺寸也会越大,存储图像所需要的字节数也越多。因而,在图像的放大缩小算法中,放大就是对图像的过采样,缩小是对图像的欠采样,这些会在4.5节图像缩放中i一方介绍。一般在没有必要对涉及像素的物理分辨率进行实际度量时,通常会称一幅大小为MXN的数字图像的空间分辨率为MXN像素。图0.3给出了同一幅图像在不同的空间分辨率下呈现出的不同效果。当高分辨率下的图像以低分辨率表示时,在同等的显示或者打印输出条件下,图像的尺寸变小,细节变得不明显;而当将低分辨率下的图像放大时,则会导致图像的细节仍然模糊,只是尺寸变大。这是因为缩小的图像已经丢失了大量的信息,在放大图像时只能通过复制行列的插值的方法来确定新增像素的取值。图0.3图像的空间分辨率幅分辨率为1024x1024的图像逐次减少至32x32的分辨率2 .图像的灰度级/辐射计量分辨率(RadiometriCReSohltion)在数字图像处理中,灰度级分辨率又叫色阶,是指图像中可分辨的灰度级数目,即