第2章基本概念-xg(80).ppt

上传人:本田雅阁 文档编号:2252506 上传时间:2019-03-11 格式:PPT 页数:65 大小:2.11MB
返回 下载 相关 举报
第2章基本概念-xg(80).ppt_第1页
第1页 / 共65页
第2章基本概念-xg(80).ppt_第2页
第2页 / 共65页
第2章基本概念-xg(80).ppt_第3页
第3页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2章基本概念-xg(80).ppt》由会员分享,可在线阅读,更多相关《第2章基本概念-xg(80).ppt(65页珍藏版)》请在三一文库上搜索。

1、第二章 图像的基本概念,2.1 图像的数字化,所谓的图像数字化,是指将模拟图像经过离散化之后,得到用数字表示的图像。,2.1.1 采样,采样是指将在空间上连续的图像转换成离散的采样点(即像素)集的操作。由于图像是二维分布的信息,所以采样是在 x轴和y轴两个方向上进行。一般情况下, x轴方向与y轴方向的采样间隔相同。,2.1.1 采样,采样时的注意点是:采样间隔的选取,以及采样保持方式的选取。 采样间隔太小,则增大数据量;太大,则会发生频率的混叠现象。 采样保持,一般不做特殊说明都是采用0阶保持的方式,即一个像素的值是其局部区域亮度(颜色)的均值。,2.1.2 分辨率,分辨率是指映射到图像平面上

2、的单个像素的景物元素的尺寸。 单位:像素/英寸,像素/厘米 (如:扫描仪的指标 300dpi),或者是指要精确测量和再现一定尺寸的图像所必需的像素个数。 单位:像素*像素 (如:数码相机指标30万像素(640*480),2.1.3 量化,量化是将各个像素所含的明暗信息离散化后,用数字来表示。一般的量化值为整数。 充分考虑到人眼的识别能力之后,目前非特殊用途的图像均为8bit量化,即用0 255描述“从黑到白”。 在3bit以下的量化,会出现伪轮廓现象。,2.1.4 量化方法,量化可分为均匀量化和非均匀量化。均匀量化是简单地在灰度范围内等间隔量化。非均匀量化是对像素出现频度少的部分量化间隔取大,

3、而对频度大的量化间隔取小。,一般情况下,对灰度变化比较平缓的部分用比较多的量化级,在灰度变化比较剧烈的地方用比较高的分辨率。,2.2 数字图像的描述,所谓的数字图像的描述是指如何用一个数值方式来表示一个图像。 因为矩阵是二维的,所以可以用矩阵来描述数字图像。同时,前面我们已经提到,量化值是整数,因此描述数字图像的矩阵一定是整数阵。,2.2 数字图像的描述,矩阵是按照行列的顺序来定位数据的,但是图像是在平面上定位数据的,所以有一个坐标系定义上的特殊性。 为了编程方便起见,我们这里以矩阵坐标系来定义图像的坐标。,2.2.1 黑白图像,黑白图像是指图像的每个像素只能是黑或者白,没有中间的过渡,故又称

4、为值图像。2值图像的像素值为0、1。,2.2.2 灰度图像,灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,没有彩色信息。,灰度图像描述示例,2.2.3 彩色图像,彩色图像是指每个像素的信息由RGB三原色构成的图像,其中RBG是由不同的灰度级来描述的。,彩色图像不能用一个矩阵来描述了,一般是用三个矩阵同时来描述。,利用256色的调色板表示灰度图 虽然我们讨论了很多色彩系统,以及彩色图像的表示方法, 但是,为了将重点放在算法上,我们所讨论的图像处理主要以 灰度图为例。灰度图就是只含亮度信息,不含色彩信息的图像。 因此,要表示灰度图,只需要将亮度值进行量化。通常划分成 0到255共256

5、个级别,0表示最暗(全黑),255表示最亮(全 白)。我们如何表示灰度图?方法就是利用256色的调色板, 只不过这种调色板比较特殊,它的每一项的R、G、B分量都相 同,也就是RGB从 到 。每一个像素的亮 度值(灰度值)就是它在该调色板中的索引值。,红蓝品红 蓝绿青 绿红黄,RGB模式是加色模式。因为三种颜色每一种都有256个亮度水平级,所以三种色彩叠加就能形成1670万种色彩了(俗称“真彩”)。RGB模式因为是由红、绿、蓝相叠加形成其他颜色,因此该模式也叫加色模式。 CMYK模式是一种减色模式,K指黑色。当阳光照射到一个物体上时,这个物体吸收一部分光线,并将剩下的光线进行反射,反射的光就是你

6、所看到的物体的颜色。这是一种减色模式。在纸上印刷时应用的也是这种减色模式。,2 .2 .4色彩系统的数学表达式 为了呈现五彩缤纷的图像,我们必须对图像的像素进行 着色。首先我们先讨论常用的色彩系统。 RGB色彩系统 众所周知,自然界中的所有颜色都可以由红、绿、蓝( R、G、B)3原色组合而成。我们把3原色人为地分成从0到 255共256个等级,比如R=0,表示不含红色;R=255表示含 有100%的红色成分。这样,根据红、绿、蓝各种不同的组合 我们可以表示出 (约1600万)种颜色。 当一幅图像中每个像素点被赋予不同的RGB值时,就能 形成彩色图像了。,YIQ色彩系统 YIQ色彩系统通常被北美

7、的电视系统采用。Y不是指黄色, 而是指颜色的亮度(Luminance),即亮度(Brightness)。I和Q则 是指色调(Chrominance),描述图像色彩及饱和度的属性。 RGB与YIQ之间的对应关系如下:,YUV色彩系统 YUV色彩系统被欧洲电视系统采用(属于PAL)。Y指明 视度,U和V虽然也是指色调,但是和I与Q的表达方式不同。 RGB色彩系统与YUV色彩系统的对应关系:,YCbCr色彩系统 YCbCr色彩系统也是一种常见的色彩系统,JPEG采用的 就是该系统。它是从YUV色彩系统衍生出来的。Y是指明视 度,Cb和Cr是将U和V作少量调整得到的。 RGB色彩系统与YCbCr色彩系

8、统的对应关系:,2. 3 灰度直方图,在数字图像处理中,灰度直方图是最简单且最有用 的工具,可以说,对图像的分析与观察,直到形成一个有效的处理方法,都离不开直方图。,2. 3.1 灰度直方图的定义,灰度直方图是灰度级的函数,是对图像中灰度级分布的统计。即:横坐标表示灰度级,纵坐标表示图像中对应某灰度级所出现的像素个数。,灰度直方图的计算示例,灰度直方图,2.3.2 灰度直方图的性质,所有的空间信息全部丢失 每一灰度级的像素个数可直接得到,2.3.3 灰度直方图的应用,前面提到过,灰度直方图是最简单的,最有用的工具。 简单性从其一维的数据形式,以及简单的计算方法可以感受到。 有用性,在这里通过几

9、个应用例子来说明。,2.3.3.1 数字化的参数,直方图给出了一个简单可见的指示,用来判断一幅图像是否合理的利用了全部被允许的灰度级范围。一幅图像应该利用全部或几乎全部可能的灰度级,否则等于增加了量化间隔。丢失的信息将不能恢复。,2.3.3.2 图像分割阈值选取,假设某图像的灰度直方图具有 二峰性,则表明这个图像较亮的区域和较暗的区域可以较好地分离,取二峰间的谷点为阈值点,可以得到好的值处理的效果。,灰度直方图具有二峰性,具有二峰性的灰度图的2值化,2.4 图像的噪声分析 噪声:“妨碍人们感觉 器官对所接收的信源信 息理解的因素”。 “不可预测,只能用概率统计方法来认识的随机误差”。 用概率分

10、布函数和概率密度函数描述随机现象。 但在很多情况下,这样的描述方法是很复杂,甚至不可能的,而实际应用往往也不必要。通常是用数字特征来反映噪声的特征: 。,均值、方差,几个分布的示例,相关函数:,2.4.1 图像噪声分类,图像采集 量化噪声 热噪声等,物理对象,接收者,传输,光:不均匀的光照 电磁:通过辐射耦合,噪声的产生途径,与噪声相关的问题: 望远镜放到太空中:哈勃望远镜 电磁兼容性问题:设备间的干扰,噪声的分类:,注意:为了分析处理方便, 往往将乘性噪声近似认为是加性噪声; U:受干扰的图像。I:原图。n:噪声 而且总是假定信号和噪声是互相统计独立。 f:概率密度,2.4.2 图像系统噪声

11、特点 1)噪声的扫描变换,对扫描成像所构成的系统:垂直方向的带宽为水平方向的带宽宽L倍(L:以扫描线间隔度量,L一般大于1)。许多电视摄像系统中采用高频补偿技术。 结论:图像的获取设备影响噪声特性。,2)噪声与图像的相关性 在数字图像处理技术中存在量化噪声,它与图像的灰度分布相关。,3) 噪声的叠加性 在串联图像传输系统中,各部分窜入噪声若是同类噪声,可以进行功率相加,因此信噪比要下降; 若不是同类噪声,应区别对待,而且要考虑视觉检出特性的影响。 通常的处理:假设各部分的噪声统计独立。,(1)连续图像场逼真度 空间域单变量逼真度Q:,例如: 或者是一个简单的门限检测,两个变量的测量:,F(x,

12、y)的估值,“接近程度”的量度:用互相关函数R表示: 通常也采用归一化的互相关函数表示:,(2)离散图像逼真度 数字图像处理系统:较多使用输出显示图像的离散抽样来确定图像逼真度。 均方误差:,如果两个图像场的抽样满足奈奎斯特(Nyguist)定律,这个误差量度应和连续图像误差量度相同。,归一化均方误差 另一种常用的离散图像逼真度量度为峰值均方误差PMSE,定义为 A:被变换图像g(j,k)的最大值,对8比特灰度图,常取255,峰值均方误差通常被表示成等效的信噪比 峰值信噪比 对均方误差同样处理为:,信噪比,2. 5 Visual C+数字编程基础,设备无关位图(DIB) 前面介绍了一些有关图像

13、的基本概念,下面要介绍如何在 Visual C+中使用图像。 DIB是Device-Independent-Bitmap的缩写,它自带颜色信 息,调色板管理非常容易。DIB是标准的Windows的位图格式, 它通常以BMP文件格式保存。一个BMP文件包含一个DIB位图。 一个BMP文件大体上分成如下4个部分。,BITMAPFILEHEADER(位图文件头),BITMAPINFOHEADER(位图信息头),Palette (调色版),.bmp文件结构图,DIB Pixels (DIB图像数据),什么是调色板? 如果一幅图像的每个像素都用RGB分量表示,我们知道 每个分量由256个等级,需要有1个

14、字节表示。那么,一个像素 的颜色信息需要用3个字节表示,图像文件将灰变得非常大。 实际上并不是这样做的,我们先来看一个简单的计算。 对一幅 的16色图像,它共有40000个像素,如果 一个像素都用R、G、B三个分量来表示,一个像素需要3个字 节,这样保存整个图像要用 ,即120000个字节! 但是我们用下面的方法表示图像,可以节省很多字节。 由于图像只有16种颜色,我们可以创建一个颜色表:表 中的每一行表示一种颜色的R、G、B值。这样当表示一个像素,的颜色时,只需指出改颜色是在第几行,即该颜色在表中的索 引值。16种状态可以用4位表示,所以一个像素要用半个字节, 整个图像要用 ,即20000个

15、字节,再加上颜色表 需要 个字节,共20048个字节。它是前面的 。 这里的RGB颜色表,就是通常所说的调色板。在Windows 位图中,就用到了调色板技术。但是,并不是所用的彩色图像 利用调色板技术,都可以节省字节。在真彩色图像中(又称24 为图像)共有 ,如果利用调色板技术,表示一个 像素颜色在调色板中的索引值需要24位,这和直接用R、G、B 三个颜色分量表示所需要的字节数一样,不但没有节省任何空 间,还要加上一个 个字节大的调色板。,调色板示意图,R,G,B,R,G,B,共16行,3个字节,第一部分:位图文件头BITMAPFILEHEADER,它是一个结构 typedef struct

16、tagBITMAPFILEHEADER WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER;,该结构的长度是固定的,为14个字节,各参数说明如下: bfType:指定文件类型,必须是0x424D,即字符串“BM”。 也就是说所有的“.bmp”文件的头两个字节都是“BM” bfSize:指定文件大小; bfReserved1、bfReserved2:为保留字,不用考虑; bfOffBits:为文件头到实际的

17、位图数据的偏移字节数,也 就是前三部分长度之和。,第二部分:位图信息头BITMAPINFOHEADER typedef struct tagBITMAPINFOHEADER DWORD bfSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPersPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADE

18、R, FAR *LPBITMAPINFOHEADER;,该结构的长度为40个节,各参数的意义说明如下: biSize:指定这个结构的大小,为40个字节; biWidth:指定图像的宽度,单位是像素; biHeight:指定图像的高度,单位是像素; biPlanes:必须是1; biBitCount:指定表示颜色要用到的位数,常用的值1(黑白) 8(256色)、24(真彩色); biCompression:指定位图是否压缩,有效值为BI_RGB BI_RLE4、BI_RLE8。其中BI_RGB为不压 缩的情况。 biSizeImage;指定实际的位图数据占用的字节数。可以用,下面的公式计算: 需

19、要注意的是:上述公式中的 不一定总等于biWidth 必须是4的整数倍,表示大于或等于biWidth的离4 最近的整倍数。 biXPelsPerMeter:指定目标设备的水平分辨率,单位是每 米的像素个数; biYPelsPerMeter;指定目标设备的垂直分辨率,单位是每 米的像素个数; biClrUsed:指定本图像实际用到的颜色数,如果该值为0 则用到的颜色数为2的biBitCount次幂,biClrImportant:指定本图像中重要的颜色数,如果该值为零,则认为所用的颜色都是重要的。 第三部分:Palette(调色板) 调色板实际上是一个数组,共有biClrUsed个元素(如果该 值

20、为0,则为2的biBitCount次幂)。数组中每个元素的类型为一 个RGBQUAD结构,占4个字节。结构定义如下: typedef struct tagRGBQUAD BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; RGBQUAD;,注意:有些位图,比如真彩色图,没有调色板。他们的位 图信息头(BITMAPINFOHEADER)后直接是DIB数据。 第四部分:DIB图像数据 分两种情况:对于用到调色板的位图,图像数据就是该像 素颜色在调色板中的索引值;对于真彩色图,图像数据就是实 际的R、G、B值。 对于2色位图,用1位

21、就可以表示该像素的颜色,因此一个字 节可以表示8个像素; 对于16色位图,用4位可以表示一个像素的颜色,所以1个字 节可以表示2个像素; 对于256色位图,一个字节刚好表示一个像素;,对于真彩色图,3个字节才能表示1个像素 注意:1. 每一行的字节数必须是4的整倍数,如果不是,则需要 补齐; 2. 图像数据是按照从上到下、从左到右的顺序存储;我 们最先读到的是图像最下面一行的左边第一个像素, 然后是左边第二个像素 接下来是倒数第二行左边 第一个像素,左边第二个像素 依此类推,最后得 到的是最上面一行的最后一个像素。,DIB访问函数 下面介绍两个常用的DIB访问函数 int SetDIBitsT

22、oDevice(HDC hdc,int XDest,int YDest,DWORD dwWidth,DWORD dwHeight,int XSrc,int YSrc,UINT uStartScan UINT cScanLines,CONST VOID *lpBits,CONST BITMAPINFO *lpbmi,UINT fuColorUse) 该函数可以直接在显示器或打印机上显示DIB,在显示时不 进行缩放处理,即位图的每一个像素对应于一个显示像素或打 印机的打印点。其中各参数的含义如下:,HDC hdc:设备上下文句柄。它可以是CDC对象的公共成员 变量m_hDC。 int Xdest:

23、指定绘图区域的左上角x坐标(逻辑单位) int Ydest:指定绘图区域的左上角y坐标(逻辑单位) DWORD dwWidth:指定DIB的宽度(逻辑单位) DWORD dwHeight:指定DIB的高度(逻辑坐标) int Xsrc:指定原绘图要绘制区域的左上角x坐标(逻辑单位) int Ysrc:指定原绘图要绘制区域的左上角y坐标(逻辑单位) UINT uStartScan:指定DIB扫描的起始行 UINT cScanLines:指定DIB扫描的行数(即DIB的高度) CONST VOID* lpBits:指向DIB图像数据的指针,lpbmi:指向BITMAPINFO结构的指针 fuCol

24、orUse:指定BITMAPINFO结构中的bmiColors参数代表 真实的RGB值还是调色板中的索引值,它有两种可能的取值: DIB_PAL_COLORS:代表索引值 DIB_RGB_COLORS:代表真实的RGB值 该函数如果调用成功,返回绘制的行数;失败,则返回0。 2. int StretchDIBits(HDC hdc,int XDest,int YDest,int nDestWidth, int nDestHeight,int XSrc,int YSrc,int nSrcWidth,int nSrcHeight, CONST VOID *lpvBits,CONST BITMAPI

25、NFO *lpbmi,UINT iUsage,DWORD dwRo),HDC hdc:设备上下文句柄 int Xdest:指定绘图区域的左上角x坐标(逻辑单位) int Ydest:指定绘图区域的左上角y坐标(逻辑单位) int nDestWidth:指定DIB的宽度(逻辑单位) int nDestHeight:指定DIB的高度(逻辑单位) int XSrc:指定原位图要绘制区域的左上角x坐标(逻辑单位) int Ysrc:指定原位图要绘制区域的左上角y坐标(逻辑单位) int nSrcWidth:指定要复制原图像矩形区域的宽度(逻辑单位) int nSrcHeight:指定要复制原图像矩形区

26、域的高度(逻辑单位) lpBits:指向DIB图像数据区的指针 lpBitsInfo:指向BITMAPINFO结构的指针,iUsage:指定BITMAPINFO结构中的bmiColors参数代表 真实的RGB值还是调色板中的索引值,它有两种可能的取值: DIB_PAL_COLORS:代表索引值 DIB_RGB_COLORS:代表真实的RGB值 dwRo:指定绘制方式;常用的值为SRCCOPY,表示将原位 图复制到目标位图 该函数如果调用成功,返回绘制的行数;如果调用失败,则 返回GDI_ERROR。 下面我们编写一个读BMP文件以及以.bmp格式保存一幅图像, 以此为例来说明bmp文件的结构。

27、,读.bmp文件的函数原型 HDIB ReadDIBFile(CFile& file) 函数的参数Cfile &file:为文件名;该函数的返回值是文件中的 图像数据的句柄。程序流程图:,开始,定义一个位图文件头结构bmfHdr 将文件的前14个字节读到bmHdr中 分配内存区域,句柄为hDIB,是否.bmp?,将信息头、调色板、图像数据copy到一个内存区域hDIB,是,否,hDIB赋为NULL,将图像数据保存成.bmp文件,函数原型 BOOL WINAPI SaveDIB(HDIB hDib, CFile& file) 第一个参数为hDIB表示保存图像数据的内存区域的句柄 第二个参数为保存图像的文件名。 程序流程图:,创建位图文件头 bmfHdr,计算图像数据 的大小BitsSize,修改位图信息头 biSizeImag的大小,计算bmfHdr结构中biSize的大小 设置其它四个参数,将四部分的内容 分别写入文件中,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1