版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数 字 图 像 处 理(Digital Image Processing),主讲人:唐朝飞,数字图像处理基础,数字图像处理概述 Visual C+数字编程基础 两种基本的运算 点运算 正交变换,1.1 引言,视觉是人类从大自然获取信息的最主要的手段。据统计,在人类获取的信息中,视觉信息占60%,听觉信息占20%, 其它的如味觉信息、触觉信息加起来约占20%。由此可见,视觉信息对人类的重要性,而图像正是人类获取视觉信息的重要手段。所谓“图”,就是物体透射或反射光的分布;“像”是人的视觉系统接收视觉信息而在人的大脑中形成的印象或认识。 前者是客观存在的,而后者是人的感觉,图像应是两者的结合,在图像
2、处理中,仅仅把图像看成是二维平面或三维立体空间中具有明暗或,第一章 数字图像处理概述,色彩变化的光分布是不全面的。 图像处理就是对图像信息进行加工,以满足人的视觉或心理或应用的需求的行为。图像处理有两种方法:光学法和电子学(数字)法。前者已经有很长的发展历史,从简单的光学滤波到现在的激光全息技术,光学处理理论已经日趋完善。它的特点是处理速度快,信息容量大,分辨率高,但是光学处理的精度不够高,稳定性差,操作不方便。数字图像处理就是利用计算机或其它数字硬件,对图像信息转换而得的电信号进行某些数学运算,以提高图像的实用性。比如从卫星图片中获取目标物的特征参数。数字图像处理的特点是处理精度高,而,且可
3、以通过改进处理软件来优化处理效果,操作方便,但是数字图像处理的数据量非常大,处理速度慢,从而限制了数字图像处理的发展。随着计算机技术的飞速发展,计算机的运算速度大大提高,这将大大促进数字图像处理技术的发展。,1.2 数字图像处理概述,数字图像处理包括以下几方面的内容:,点运算 点运算主要是针对图像的像素进行加、减、乘、 除运算。它能够有效的改进图像的直方图分布。 几何处理 几何处理主要包括图像的平移、缩放、旋转、 扭曲校正等。它是最常见的图像处理手段。 正交变换 正交变换的主要目的就是将图像信息从空域转,到变换域进行研究,包括离散傅立叶变换(DFT)、离散 余弦变换(DCT)、沃尔什变换(DW
4、T)、小波变换等。 图像的增强 图像在转换和传送过程中,总要造成图像的某些降质。 比如:在摄像时,光学系统的失真、大气流动会使图像模 糊;在图像的数字化过程中(扫描、采样、量化),会引 入噪声;在传输过程中,由于噪声污染,图像的质量会有 所下降。为了改善图像的质量,有两种方法:一类是不考 虑图像降质的原因,只将图像中感兴趣的特征有选择的突 出,而衰减次要信息;这种方法能提高图像的可读性,但 改善后的图像不一定逼近原始图像,如衰减各种噪声、突,出目标的轮廓等。这种方法称为图像的增强。另一类方 法是针对图像降质的原因,设法去补偿降质因素,从而 使改善后的图像尽可能的逼近原始图像。这种方法称为 图像
5、的复原。 图像的复原 图像的形态学处理 图像的形态学处理是数学形态学的延伸,利用图像的 形态学处理技术可以实现图像的腐蚀、细化和分割等。 图像的编码 它的主要目的是利用图像信号的统计特征及人类视觉 特性对图像进行高效编码,从而达到图像压缩的目的。,图像的重建 图像的重建起源于CT技术的发展,是一门新兴的数字 图像处理技术,主要是利用采集的图像数据重建出图像。 模式识别 模式识别也是图像处理的一个新兴的研究方向,目前 模式识别的方法主要有三种:统计识别法、句法结构模 式识别法和模糊识别法。,1.3 数字图像处理的基本术语,一、像素 在自然的形式下,图像不能直接由计算机进行分析。因为计算机只能处理
6、数字信息,所以一幅图像在由计算机处理之前必须先转化为数字形式。如何用一个数字阵列来表示一个物理图像?物理图像首先被划分为若干小的区域,最常见的划分方案是划分成小的方形的采样网格。这些采样方格被称为图像元素,简称像素。将物理图像转化为数字形式的处理过程称为数字化。在数字化的过程中,每个像素位置,图像的亮度被采样和量化,从而得到图像对应点上表示亮暗程度的一个整数值。对所有的像素都完成转化后,图像就被表示成一个整数矩阵。由此可见,像素有两个属性:位置和灰度 数字图像在显示屏幕上显示时,它的每个像素对应,显示器的一个点。显示时采用扫描的方式:电子枪每次从左到右扫描一行,为每个像素着色,然后再从上倒下扫
7、描整个屏幕,利用人眼的视觉暂留效应就可以显示出一屏完整的图像。为了防止闪烁,每秒要重复上述过程及十次。我们常说的屏幕分辨率为 ,刷新频率85Hz,每行扫描1024个像素,一共要扫描768行,每秒重复扫描屏幕85次。,二、对比度 对比度是指图像中灰度反差的大小。 三、采样密度 采样密度是指在图像单位长度包含的采样点数。采 样密度的倒数是像素间距。,四、色彩系统 为了呈现五彩缤纷的图像,我们必须对图像的像素进行 着色。首先我们先讨论常用的色彩系统。 RGB色彩系统 众所周知,自然界中的所有颜色都可以由红、绿、蓝( R、G、B)3原色组合而成。我们把3原色人为地分成从0到 255共256个等级,比如
8、R=0,表示不含红色;R=255表示含 有100%的红色成分。这样,根据红、绿、蓝各种不同的组合 我们可以表示出 (约1600万)种颜色。 当一幅图像中每个像素点被赋予不同的RGB值时,就能 形成彩色图像了。,YIQ色彩系统 YIQ色彩系统通常被北美的电视系统采用。Y不是指黄色, 而是指颜色的亮度(Luminance),即亮度(Brightness)。I和Q则 是指色调(Chrominance),描述图像色彩及饱和度的属性。 RGB与YIQ之间的对应关系如下:,YUV色彩系统 YUV色彩系统被欧洲电视系统采用(属于PAL)。Y指明 视度,U和V虽然也是指色调,但是和I与Q的表达方式不同。 RG
9、B色彩系统与YUV色彩系统的对应关系:,YCbCr色彩系统 YCbCr色彩系统也是一种常见的色彩系统,JPEG采用的 就是该系统。它是从YUV色彩系统衍生出来的。Y是指明视 度,Cb和Cr是将U和V作少量调整得到的。 RGB色彩系统与YCbCr色彩系统的对应关系:,五、调色板 如果一幅图像的每个像素都用RGB分量表示,我们知道 每个分量由256个等级,需要有1个字节表示。那么,一个像素 的颜色信息需要用3个字节表示,图像文件将灰变得非常大。 实际上并不是这样做的,我们先来看一个简单的计算。 对一幅 的16色图像,它共有40000个像素,如果 一个像素都用R、G、B三个分量来表示,一个像素需要3
10、个字 节,这样保存整个图像要用 ,即120000个字节! 但是我们用下面的方法表示图像,可以节省很多字节。 由于图像只有16种颜色,我们可以创建一个颜色表:表 中的每一行表示一种颜色的R、G、B值。这样当表示一个像素,的颜色时,只需指出改颜色是在第几行,即该颜色在表中的索 引值。16种状态可以用4位表示,所以一个像素要用半个字节, 整个图像要用 ,即20000个字节,再加上颜色表 需要 个字节,共20048个字节。它是前面的 。 这里的RGB颜色表,就是通常所说的调色板。在Windows 位图中,就用到了调色板技术。但是,并不是所用的彩色图像 利用调色板技术,都可以节省字节。在真彩色图像中(又
11、称24 为图像)共有 ,如果利用调色板技术,表示一个 像素颜色在调色板中的索引值需要24位,这和直接用R、G、B 三个颜色分量表示所需要的字节数一样,不但没有节省任何空 间,还要加上一个 个字节大的调色板。,调色板示意图,R,G,B,R,G,B,共16行,3个字节,六、灰度图 虽然我们讨论了很多色彩系统,以及彩色图像的表示方法, 但是,为了将重点放在算法上,我们所讨论的图像处理主要以 灰度图为例。灰度图就是只含亮度信息,不含色彩信息的图像。 因此,要表示灰度图,只需要将亮度值进行量化。通常划分成 0到255共256个级别,0表示最暗(全黑),255表示最亮(全 白)。我们如何表示灰度图?方法就
12、是利用256色的调色板, 只不过这种调色板比较特殊,它的每一项的R、G、B分量都相 同,也就是RGB从 到 。每一个像素的亮 度值(灰度值)就是它在该调色板中的索引值。,小结: 在第一章中我们首先讨论了什么是数字图像处理以及它所 研究的主要内容。接下来我们讨论了数字图像处理中的基本术 语,包括像素、对比度、色彩系统、灰度图等一些概念。到目 前为止,我们已经能够利用数字的形式来表示一幅图像。,第二节 Visual C+数字编程基础,2.1 设备无关位图(DIB) 前面介绍了一些有关图像的基本概念,下面要介绍如何在 Visual C+中使用图像。 DIB是Device-Independent-Bi
13、tmap的缩写,它自带颜色信 息,调色板管理非常容易。DIB是标准的Windows的位图格式, 它通常以BMP文件格式保存。一个BMP文件包含一个DIB位图。 一个BMP文件大体上分成如下4个部分。,BITMAPFILEHEADER(位图文件头),BITMAPINFOHEADER(位图信息头),Palette (调色版),DIB Pixels (DIB图像数据),.bmp文件结构图,第一部分:位图文件头BITMAPFILEHEADER,它是一个结构 typedef struct tagBITMAPFILEHEADER WORD bfType; DWORD bfSize; WORD bfRese
14、rved1; WORD bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER;,该结构的长度是固定的,为14个字节,各参数说明如下: bfType:指定文件类型,必须是0 x424D,即字符串“BM”。 也就是说所有的“.bmp”文件的头两个字节都是“BM” bfSize:指定文件大小; bfReserved1、bfReserved2:为保留字,不用考虑; bfOffBits:为文件头到实际的位图数据的偏移字节数,也 就是前三部分长度之和。,第二部分:位图信息头BITMAPINFOHEADER typed
15、ef struct tagBITMAPINFOHEADER DWORD bfSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPersPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER;,该结构的长度为40个节,各参数的意义说明如下: biSiz
16、e:指定这个结构的大小,为40个字节; biWidth:指定图像的宽度,单位是像素; biHeight:指定图像的高度,单位是像素; biPlanes:必须是1; biBitCount:指定表示颜色要用到的位数,常用的值1(黑白) 8(256色)、24(真彩色); biCompression:指定位图是否压缩,有效值为BI_RGB BI_RLE4、BI_RLE8。其中BI_RGB为不压 缩的情况。 biSizeImage;指定实际的位图数据占用的字节数。可以用,下面的公式计算: 需要注意的是:上述公式中的 不一定总等于biWidth 必须是4的整数倍,表示大于或等于biWidth的离4 最近的
17、整倍数。 biXPelsPerMeter:指定目标设备的水平分辨率,单位是每 米的像素个数; biYPelsPerMeter;指定目标设备的垂直分辨率,单位是每 米的像素个数; biClrUsed:指定本图像实际用到的颜色数,如果该值为0 则用到的颜色数为2的biBitCount次幂,biClrImportant:指定本图像中重要的颜色数,如果该值为零, 则认为所用的颜色都是重要的。 第三部分:Palette(调色板) 调色板实际上是一个数组,共有biClrUsed个元素(如果该 值为0,则为2的biBitCount次幂)。数组中每个元素的类型为一 个RGBQUAD结构,占4个字节。结构定义如
18、下: typedef struct tagRGBQUAD BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; RGBQUAD;,注意:有些位图,比如真彩色图,没有调色板。他们的位 图信息头(BITMAPINFOHEADER)后直接是DIB数据。 第四部分:DIB图像数据 分两种情况:对于用到调色板的位图,图像数据就是该像 素颜色在调色板中的索引值;对于真彩色图,图像数据就是实 际的R、G、B值。 对于2色位图,用1位就可以表示该像素的颜色,因此一个字 节可以表示8个像素; 对于16色位图,用4位可以表示一个像素的颜色,所以1个
19、字 节可以表示2个像素; 对于256色位图,一个字节刚好表示一个像素;,对于真彩色图,3个字节才能表示1个像素 注意:1. 每一行的字节数必须是4的整倍数,如果不是,则需要 补齐; 2. 图像数据是按照从上到下、从左到右的顺序存储;我 们最先读到的是图像最下面一行的左边第一个像素, 然后是左边第二个像素 接下来是倒数第二行左边 第一个像素,左边第二个像素 依此类推,最后得 到的是最上面一行的最后一个像素。,2.2 DIB访问函数 下面介绍两个常用的DIB访问函数 int SetDIBitsToDevice(HDC hdc,int XDest,int YDest,DWORD dwWidth,DW
20、ORD 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:指定绘图区域的左上角x坐标(逻辑单位) int Ydest:指定绘图区域的左上角y坐标(逻辑单位) DW
21、ORD dwWidth:指定DIB的宽度(逻辑单位) DWORD dwHeight:指定DIB的高度(逻辑坐标) int Xsrc:指定原绘图要绘制区域的左上角x坐标(逻辑单位) int Ysrc:指定原绘图要绘制区域的左上角y坐标(逻辑单位) UINT uStartScan:指定DIB扫描的起始行 UINT cScanLines:指定DIB扫描的行数(即DIB的高度) CONST VOID* lpBits:指向DIB图像数据的指针,lpbmi:指向BITMAPINFO结构的指针 fuColorUse:指定BITMAPINFO结构中的bmiColors参数代表 真实的RGB值还是调色板中的索引
22、值,它有两种可能的取值: 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 BITMAPINFO *lpbmi,UINT iUsage,DWORD dwRo),HDC hdc:设备上下文句柄 i
23、nt Xdest:指定绘图区域的左上角x坐标(逻辑单位) int Ydest:指定绘图区域的左上角y坐标(逻辑单位) int nDestWidth:指定DIB的宽度(逻辑单位) int nDestHeight:指定DIB的高度(逻辑单位) int XSrc:指定原位图要绘制区域的左上角x坐标(逻辑单位) int Ysrc:指定原位图要绘制区域的左上角y坐标(逻辑单位) int nSrcWidth:指定要复制原图像矩形区域的宽度(逻辑单位) int nSrcHeight:指定要复制原图像矩形区域的高度(逻辑单位) lpBits:指向DIB图像数据区的指针 lpBitsInfo:指向BITMAPI
24、NFO结构的指针,iUsage:指定BITMAPINFO结构中的bmiColors参数代表 真实的RGB值还是调色板中的索引值,它有两种可能的取值: DIB_PAL_COLORS:代表索引值 DIB_RGB_COLORS:代表真实的RGB值 dwRo:指定绘制方式;常用的值为SRCCOPY,表示将原位 图复制到目标位图 该函数如果调用成功,返回绘制的行数;如果调用失败,则 返回GDI_ERROR。 下面我们编写一个读BMP文件以及以.bmp格式保存一幅图像, 以此为例来说明bmp文件的结构。,读.bmp文件的函数原型 HDIB ReadDIBFile(CFile& file) 函数的参数Cfi
25、le &file:为文件名;该函数的返回值是文件中的 图像数据的句柄。程序流程图:,开始,定义一个位图文件头结构bmfHdr 将文件的前14个字节读到bmHdr中 分配内存区域,句柄为hDIB,是否.bmp?,将信息头、调色板、图像数据copy到一个内存区域hDIB,是,否,hDIB赋为NULL,将图像数据保存成.bmp文件,函数原型 BOOL WINAPI SaveDIB(HDIB hDib, CFile& file) 第一个参数为hDIB表示保存图像数据的内存区域的句柄 第二个参数为保存图像的文件名。 程序流程图:,创建位图文件头 bmfHdr,计算图像数据 的大小BitsSize,修改位
26、图信息头 biSizeImag的大小,计算bmfHdr结构中biSize的大小 设置其它四个参数,将四部分的内容 分别写入文件中,第三章 点运算 3.1 灰度直方图 灰度直方图是灰度直方图的函数,描述的是具有某灰度值 像素的个数。其横坐标是像素的绘度级别(0到255),纵坐标 是某灰度值出现的频率(像素的个数)。 灰度直方图的另一种定义方法:,3.2 灰度的线性变换 灰度的线性变换就是指图像的中所有点的灰度按照线性灰 度变换函数进行变换。灰度变换方程如下: 该方程为线性方程。式中参数 为输入图像的像素的灰度值, 参数 为输出图像的灰度。,输出图像的对比度将增大,灰度值上移或下移,更亮或更暗,输
27、入和输出图像相同,输出图像的对比度将减小,特殊的 ,输出图像灰度反转,3.3 灰度的阈值变换 灰度的域值变换可以将一幅灰度图像转换成黑白二色图像。 它的操作过程是先由用户指定一个阈值,如果图像中某像素的 灰度值小于该阈值,则将该像素的灰度值设置为0(黑色);如 果图像中某像素的灰度值大于阈值,则将该像素的灰度值设置 为255(白色)。变换函数表达式:,其中 为指定的阈值。,3.4 灰度的窗口变换 灰度的窗口变换类似阈值变换,阈值变换设置一个阈值, 作为分界点。窗口变换限定一个窗口范围,该窗口内的灰度值 保持不变;小于该窗口下限的灰度值直接设置为0;大于该窗 口上限的灰度值直接设置为255。窗口
28、变换函数表达式:,其中 为窗口的下限, 为窗口的上限。,灰度的窗口变换可以有效的消除图像的背景。,255,上图为双峰直方图,第一个峰值为物体,第二峰值为背景,双 峰之间的谷低在T处。当该图像进行窗口变换时,窗口上限取T 下限为0,变换后,背景将变成白色。,3.5 灰度拉伸 灰度拉伸和线性变换类似,但它是分段进行线性变换。它 的灰度变换函数表达式如下:,灰度拉伸可以更加灵活的控制输出图像灰度值放图的分布, 它可以有选择的拉伸某段灰度区间,以改善输出图像的质量。,3.6 灰度均衡 灰度均衡,有时也称直方图均衡,目的是通过点运算使输 入图像转换为在每一灰度级上都有相同的像素点数的输出图像。 也就是输
29、出图像的直方图是平的。,图像的概率密度函数(PDF),归一化的直方图 其中 为归一化的直方图, 为原直方图。 设转换前图像的概率密度函数为 ,转换后图像的概率密度 函数为 ,转换函数为 ,由概率论的知识 如果想使转换后图像的概率密度函数为1,则 对于离散图像,转换公式为:,式中 为输入图像的灰度级, 为第k级灰度的像素个数。 为图像总像素点数。 小结:在本章中我们主要讨论了以下几个方面的内容 图像的统计特征灰度直方图; 图像的线性变换; 图像的阈值变换; 图像的窗口变换; 图像的灰度拉伸; 图像的均衡;,第四章 图像的正交变换 4.1 离散傅立叶变换 我们首先来看一维的离散傅立叶变换对: 其中: 二维离散函数 的傅立叶变换为:,4.2 离散傅立叶变换的性质 可分性 一个二维离散傅立叶变换可以用二次一维的离散傅立叶变 换来实现。 线性,对称性 比例变换特性 平移特性,上式表明: 1. 空间域图像的平移只影响频域中的相位,不影响幅度; 2. 周期性 共轭性 说明离散 函数的傅立叶变换 是以原点为中 心对称的,只要求出半个周期内的值就可以得到真个周期的 值。,旋转特性,平均值 能量保持定理 微分特性 定义二为离散函数 的拉普拉斯算子为: 那么,卷积定理 为了防止交叠误差(Wraparound Error),将 扩展为 ,其二维离散卷积定义为: 则二维离散傅立叶卷积如下: 13. 相关定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未获得房产证的房屋交易合同
- 工人简单劳务合同格式模板
- 服装零售合作伙伴协议范本
- 抵押合同的法律效力与执行程序解析
- 2024年地下车位转让的法律协议
- 手机购销合同常用范本参考
- 产品地区独家代理合同范本
- 房产经纪人合作方合同范文
- 合作伙伴协定存款协议
- 工程设计行业规范
- 人教版(一年级起点)一年级至六年级的英语词汇
- 小班幼儿优势分析总结与反思
- 消防培训四懂四会
- 企业招聘会新闻稿范文300字
- 大学生研学活动策划方案
- 第9课发展全过程人民民主(课件+视频)(高教版2023·基础模块)
- 内蒙古包头市青山区2022-2023学年八年级上学期期末生物试题
- 中医四诊.课件
- 施工极端天气应急预案方案
- 事业单位工作人员调动申报表
- 幼儿园家长会内容及流程
评论
0/150
提交评论