数字图像处理计算机科学与工程系杨淑莹计算机科学与工程系2课程内容简介介绍各种数字图象处理的算法分析及编程实现技术。主要内容包括:位图基础、图象的显示、图像的几何变换、图象灰度变换、图像的平滑处理、图像锐化处理及边缘检测、图像分割及测量、图像的形态学处理、图像的变换域处理及应用、图像的合成、24位彩色图像处理、JPEG图像的压缩编码。计算机科学与工程系3第一章位图基础1.1数字图像的基本概念1.2与设备无关位图(DIB)计算机科学与工程系41.1数字图像的基本概念位图与矢量图数字图象的基本概念单色图象灰度图象伪彩色图像24位真彩色图像计算机科学与工程系5位图与矢量图图形由指令集合组成的描述,显示时需要相应的软件读取这些命令,并将其转变为屏幕上所显示的形状和颜色,图形记录的主要内容是坐标值或坐标值序列,对一般画面内容的颜色或亮度隐含且统一地描述。图像是以栅格结构存储画面内容,栅格结构将一幅图划分为均匀分布的栅格,每个栅格称为像素,显式地记录每一像素的光度值(亮度或彩色),所有像素位置按规则方式排列,像素位置的坐标值却是有规则地隐含。计算机科学与工程系6数字图象的基本概念在PC的显示系统中,显示的图像是由一个个像素组成的,每一个像素都有自己的颜色属性,每一个像素的颜色由红,绿,蓝三原色组合而成。数字图象是连续图象f(x,y)的一种近似表示,通常用由采样点的值所组成的矩阵来表示:f(0,0)f(0,1)….f(0,M-1)f(1,0)f(1,1)….f(1,M-1)f(N-1,0)f(N-1,1)….f(N-1,M-1)每一个采样单元叫做一个象素(pixel),上式中,M、N分别为数字图象在横、纵方向上的象素。在计算机内通常用二维数组来表示数字图象的矩阵。计算机科学与工程系7数字图象的基本概念图象数字化的精度包括两个部分,即分辨率和颜色深度。分辨率:有显示分辨率和图象分辨率。图象分辨率:是数字化图象时划分图象的象素密度,即单位长度内的象素数,其单位是每英寸的点数DIP(DotsperInche)。图象分辨率说明了数字图象的实际精细度。显示分辨率:是把数字图象在输出设备(如显示屏或打印机等)上能够显示的象素数目和所显示象素之间的点距。显示分辨率说明了数字图象的表现精细度。具有不同的图象分辨率的数字图象在同一输出设备上的显示分辨率相同。颜色深度:是指表示每一象素的颜色值的二进制位数。颜色深度越大则能表示的象素的颜色数目越多,它们之间的关系取决于数字图象采用的颜色表示法。常用的颜色表示法有RGB、CMYK、YUV等。计算机科学与工程系8单色图象单色图象的每一象素值具有如下特征:1)图象中每一点的红、绿、蓝颜色分量值都相等即:fred(x,y)=fgreen(x,y)=fblue(x,y)2)其值只有两个0或255。单色图象具有比较简单的格式,它一般由黑色区域和白色区域组成,其典型图象格式就是直线图和图表。一旦给定图象的大小,这种格式的内容将十分紧凑.计算机科学与工程系9灰度图象灰度图象的每一象素值具有如下特征:1)图象中每一点都不是彩色的,即每一点的红绿蓝颜色分量值都相等,即:fred(x,y)=fgreen(x,y)=fblue(x,y)2)其值范围从0~255。对于灰度图象,其f(x,y)表示(x,y)位置处的灰度值。在一些单色照片中,经常要用灰度,才能准确的表达图象的真实视觉效果,这种图象被称为灰度图象。当需要在不具备真彩色支持的图象显示卡上显示原始真彩色图象时,一般都要利用相应的灰度图象对其进行近似处理,因此灰度图象是图象技术中涉及范围比较广泛的一种图象表示方法。计算机科学与工程系10伪彩色图像伪彩色图像与灰度图像相似,其存储文件中也带有图像颜色表,伪彩色图像具有如下特征:1)图像颜色表中的红、绿、蓝颜色分量值不全相等,即:fred(x,y)≠fgreen(x,y)≠fblue(x,y)2)整幅图像仅有256种颜色,要表示256种不同的颜色,像素必须由8位组成,每个像素值不是由每个基色分量的数值直接决定,而是把像素值当作图像颜色表的表项入口地址。把具有256色的图像称为8位彩色图像。计算机科学与工程系1124位真彩色图像具有全彩色照片表达能力的图像为24位彩色图像,24位真彩色图像存储文件中不带有图像颜色表,其具有如下特征:1)图像中每一像素由RGB三个分量组成,每个分量各占8位,每个像素需24位。2)fred(x,y)、fgreen(x,y)、fblue(x,y)取值范围为0~255。由于24位真彩色图像所需的存储空间很大,处理速度较慢,当需要存储空间不大,并且要求实时快速处理图像时,一般都要利用相应的8位位图对其进行近似处理,因此8位位图是图像技术中涉及范围比较广泛的一种图像表示方法。计算机科学与工程系121.2与设备无关位图(DIB)BMP文件组成数字图像处理的应用计算机科学与工程系13BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。位图结构如下所示:位图颜色表RGBQUAD位图像素数据位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER计算机科学与工程系14结构数据域含义FILEHEADERBITMAPbfType字节“BM”bfSize文件总字节数BfReserved10BfReserved10bfOffBits位图数据距文件头的偏移量BITMAPINFOHEADERbiSize本结构大小的字节数biWidth位图的宽度,单位为象素点biHeight位图的高度,单位为象素点biPlanes1biBitCount象素的位数(1,4,8,24)计算机科学与工程系15biCompression压缩方式(0表示不压缩)bisizeImage位图数据的字节数biXpelsPerMeter水平分辨率(象素点/米)biYpelsPerMeter垂直分辨率(象素点/米)biClrUsed图象中使用的颜色数biClrImportant图象中重要的颜色数RGBQUADrgbBlue蓝色的比例rgbGreen绿色的比例rgbRed红色的比例rgbReserved0计算机科学与工程系16数字图像处理的应用下面列举一些典型的应用实例。(1)遥感航天中的应用①天文、太空星体的探测及分析;②军事侦察、定位、指挥等;③地质、地形、地图的普查及绘制;④地下矿藏的勘探;⑤环境污染的监测;⑥气象、天气预报的合成分析。(2)生物医学中的应用①显微图像处理;②DNA显示分析;③生物进化的图像分析;④手术规划;⑤内脏大小、形状、活动及异常检出分析;⑥癌细胞识别。计算机科学与工程系17数字图像处理的应用(3)工业应用①产品无损检测、焊缝及内部缺陷检测;②流水线零件自动检测识别;③生产过程的监控;④交通管制、机场监控;⑤支票、签名辨伪及识别;⑥机器人视觉系统的应用。(4)军事公安领域中的应用①罪犯脸形的合成;②指纹自动识别;③巡航导弹地形识别;④手迹、印章的鉴定识别;⑤遥控飞行器的引导;⑥雷达的目标侦察。计算机科学与工程系18数字图像处理的应用(5)其它应用①多媒体计算机系统及应用;②图像的远程通信③电视会议;④可视电话;⑤服装试穿显示;⑥现场视频管理。计算机科学与工程系19第二章图像的显示2.1调色板的基本应用2.2图像的特效显示计算机科学与工程系202.1调色板的基本应用调色板的原理调色板的创建与实现显示函数计算机科学与工程系21调色板的原理调色板就是在256色显示系统中,将图像中出现的256种颜色组成颜色表,对这些颜色按8位,即0至255进行编号,每一编号代表其中的一种颜色,在这种颜色中颜色编号叫做颜色的索引号。256色位图文件中含有BMP文件由文件头、位图信息头、颜色信息表和图像数据四部分组成。图像的像素值并不是颜色值,而是颜色索引表的索引号。计算机科学与工程系22调色板的创建与实现在调色板系统中,每一幅图像都有自己的调色板,显示时必须将自己的调色板载入系统调色板中,实现调色板。一般创建一个逻辑调色板需要以下五步:(1)建立一个LOGPALETTE结构和PALETTEENTRY数组;(2)对数组元素进行初始化并对成员变量进行设置;(3)建立CPalette对象并使用CreatePalette函数初始化调色板对象;(4)使用SelectPalette函数来将设备描述表和调色板联系起来;(5)使用CDC中的RealizePalette函数使调色板生效。计算机科学与工程系23显示函数在VisualC++环境中用于显示的主要有BitBlt函数、StretchBlt函数和StretchDIBits函数。BitBlt函数和StretchBlt函数属于CDC类,而StretchDIBits函数为API函数。计算机科学与工程系24显示函数BitBlt()函数该函数的结构如下:BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwrop);参数说明:x:指定绘制目标矩形左上角的逻辑X轴位置。y:指定绘制目标矩形左上角的逻辑Y轴位置。nWidth:指定绘制目标矩形和源位图的宽度(按逻辑单位)。nHeight:指定绘制目标矩形和源位图的高度(按逻辑单位)。pSrcDC:设备上下文的指针。xSrc,ySrc:指定源位图左上角的逻辑X轴、Y轴位置。dwrop:指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。当要将位图的像素从内存显示环境复制到显示器(或打印机)设备环境中,一般会用到这个函数。计算机科学与工程系25显示函数StretchBlt()函数该函数的结构如下:BOOLStretchBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,intnSrcWidth,intnSrcHeight,DWORDdwrop);参数说明:x:指定绘制目标矩形左上角的逻辑X轴位置。y:指定绘制目标矩形左上角的逻辑Y轴位置。nWidth:指定绘制目标矩形的宽度(按逻辑单位)。nHeight:指定绘制目标矩形的高度(按逻辑单位)。pSrcDC:设备上下文的指针xSrc,ySrc:指定源位图左上角的坐标(按逻辑单位)。nSrcWidth,nSrcHeight:指定复制源位图的宽度和高度(按逻辑单位)。dwrop:指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。计算机科学与工程系26显示函数StretchDIBits()函数该函数的结构如下:BOOLStretchDIBits(HDChdc,intx,inty,intnWidth,intnHeight,intxSrc,intySrc,intnSrcWidth,intnSrcHeight,CONSTVOID*lpvBits,CONSTBITMAPINFO*lpbmi,UNITfuColorUse,DWORDdwrop);参数说明:hdc:设备上下文句柄。x:指定绘制目标矩形左上角的逻辑X轴位置。y:指定绘制目标矩形左上角的逻辑Y轴位置。nWidth:指定绘制目标矩形的宽度(按逻辑单位)。nHeight:指定绘制目标矩形的高度(按逻辑单位xSrc,ySrc:指定源位图左上角的坐标(按逻辑单位)。nSrcWidth,nSrcHeight:指定复制源位图的宽度和高度(按逻辑单位)。lpvBits:指向DIB数据图像的指针。lpbmi:指向BITMAPINFO结构的指针。fuColorUse:指定BITMAPINFO结构中的bmiColors包含真实的RGB值还是调色板中的索引值。dwrop:指定要执行的光栅运算。计算机科学与工程系272.2图像的特效显示图像的特效显示就是利用人眼的视觉特性,通过对图像分块,然后以不同的次序显示出来。实现图像的特效显示的基本思路