《数字图像的基本知识.ppt》由会员分享,可在线阅读,更多相关《数字图像的基本知识.ppt(21页珍藏版)》请在金锄头文库上搜索。
1、第第2 2章章 数字图像的基本知识数字图像的基本知识 本章介绍数字图像的描述方法。讨论内容如下:本章介绍数字图像的描述方法。讨论内容如下:2.1 彩色计色体系彩色计色体系2.2 位图图像的组成位图图像的组成2.3 VC+下位图文件数据的读取与显示下位图文件数据的读取与显示2.4 灰度直方图灰度直方图 位图文件的读取与显示是图像处理和分析的最基本操作,必须熟位图文件的读取与显示是图像处理和分析的最基本操作,必须熟练掌握。练掌握。 直方图是评价、处理和分析图像效果的有力工具;是本章的重点直方图是评价、处理和分析图像效果的有力工具;是本章的重点之一。之一。 2.1 2.1 彩色计色体系彩色计色体系
2、2.1.1 2.1.1 像素像素 将一幅摸拟图象划分为很多逐行逐列排列的点,每一点称为一个像将一幅摸拟图象划分为很多逐行逐列排列的点,每一点称为一个像素。像素是组成图像的最小单位。素。像素是组成图像的最小单位。 对于一幅彩色图象,每个像素需要用对于一幅彩色图象,每个像素需要用3 3个量来描述。个量来描述。(1 1) 用用 RGB 三基色描述像素三基色描述像素 R 红色分量红色分量 ,G 绿色分量,绿色分量,B 蓝色分量蓝色分量R、G、B按不同的比例混合,可得到不同的颜色。按不同的比例混合,可得到不同的颜色。例:例: 24位真彩色图像,位真彩色图像, 每个分量用一个字节表示,值范围为每个分量用一
3、个字节表示,值范围为0255。 能表达的颜色数目为能表达的颜色数目为 2563 = 16777216 种,足以描述自然界中种,足以描述自然界中的绝大部分颜色。的绝大部分颜色。 目前,目前,.BMP文件大部分都是这种格式。文件大部分都是这种格式。2.1.2 2.1.2 计色体系计色体系(2 2) 用用 YUV 分量描述像素分量描述像素 Y 亮度分量亮度分量 ,U 蓝差分量,蓝差分量,V 红差分量红差分量已知已知RGB,可求出,可求出YUV:Y = 0.30R + 0.59G + 0.11BU = BY= 0.30R 0.59G + 0.89BV= RY = 0.7R 0.59G 0.11B矩阵形
4、式:矩阵形式: 亮度分量代表像素的明暗程度,对于图像的清晰度起决定性作用。亮度分量代表像素的明暗程度,对于图像的清晰度起决定性作用。 由于由于U、V分量是三基色分量中扣除色度信号的结果,因此不包括分量是三基色分量中扣除色度信号的结果,因此不包括 亮度成分。亮度成分。 U、V分量代表像素的颜色,根据分量代表像素的颜色,根据“大面积着色原理大面积着色原理”,对图像的,对图像的清清 晰度影响不大。晰度影响不大。(3 3) 用用 YSC 分量描述像素分量描述像素 Y 亮度分量亮度分量 ,S 色饱和度分量,色饱和度分量,C 色调分量色调分量已知已知YUV ,可求出,可求出YSC:色饱和度色饱和度 S 代
5、表颜色的深浅,代表颜色的深浅,色调色调 C 代表颜色的种类。代表颜色的种类。S和和C统称为色度。统称为色度。UVCS0建立直角坐标系建立直角坐标系U-V,则,则:S为色度的大小,为色度的大小,C为色度的辐角为色度的辐角例:纯红色像素,三基色值为例:纯红色像素,三基色值为 R=255,G=0,B=0。分别用。分别用YUV和和YSC 计色制表示该像素。计色制表示该像素。 Y=0.3255 + 0.590 + 0.110=76.5 77 U=BY=0 77= 77 V=RY=255 77= 178 S= (-77)2 + (178) 2 0.5 = 193.9 C=arctg ( 178 / /77
6、) = arctg(2.31 ) = 113UVC=113S=193.90771788 种标准颜色的种标准颜色的 YSC 值如下表:值如下表:名称名称白白红红绿绿蓝蓝黄黄青青品品黑黑R,G,B1,1,11,0,00,1,00,0,11,1,00,1,11,0,10,0,0Y1.00.30.590.110.890.70.410S00.760.830.90.90.760.830C无意义无意义 1131356173293 45无意义无意义UV红红113将标准颜色画在将标准颜色画在U-V坐标系中,称为彩色坐标系中,称为彩色矢量图。矢量图。青青293品品45绿绿225蓝蓝354黄黄173例:有一像素,三
7、基色值为例:有一像素,三基色值为 R=100,G=50,B=200。试判断该像素的颜色。试判断该像素的颜色。 Y=0.3100 + 0.5950 + 0.11200 = 81.5 (较暗)(较暗) U=BY=50 81.5= 31.5 V=RY=100 81.5= 19.5 S= ( 31.5)2 + (19.5) 2 0.5 = 37 (颜色深浅中等)颜色深浅中等) C=arctg ( 19.5 / / 31.5) = arctg(0.62 ) = 32(紫偏蓝)(紫偏蓝)若知一个像素的三基色值,由彩色矢量图,很容易判断该若知一个像素的三基色值,由彩色矢量图,很容易判断该像素的颜色。像素的颜
8、色。R=100,G=50,B=200UV红红113青青293品品45绿绿225蓝蓝354黄黄1732.2 位图图像的组成位图图像的组成位图(位图(BITMAP):): 由逐行逐列的像素排列构成的图像。由逐行逐列的像素排列构成的图像。 各像素的存储顺序与像素在图像中的坐标位置成一定的影射关系。各像素的存储顺序与像素在图像中的坐标位置成一定的影射关系。 没有经过数据压缩,图像质量高。但数据量大。没有经过数据压缩,图像质量高。但数据量大。 显示时不存在解压缩过程,显示速度快。显示时不存在解压缩过程,显示速度快。图像文件:图像文件: 图像文件的格式主要有:图像文件的格式主要有: 位图文件位图文件 .B
9、MP。 WindowsWindows系统定义的一种图像文件,直接记录系统定义的一种图像文件,直接记录 三基色,未压缩,图像质量高。三基色,未压缩,图像质量高。 .JPG文件。文件。采用专门方法进行压缩,压缩是有损的,图像质量有采用专门方法进行压缩,压缩是有损的,图像质量有 一定的损失。允许损失越大,能获得的压缩比越高。一定的损失。允许损失越大,能获得的压缩比越高。 其他格式。其他格式。如如 .GIF、.TIFF等。等。 本节将重点介绍本节将重点介绍.BMP文件的结构。文件的结构。2.2.1 2.2.1 基本概念基本概念 BMP文件文件由由4部分组成:部分组成: 文件头、信息头、彩色表(调色板)
10、、位图点阵文件头、信息头、彩色表(调色板)、位图点阵2.2.2 2.2.2 BMP文件的结构文件的结构文件头文件头信息头信息头彩色表彩色表位图位图点阵点阵(1)文件头,共文件头,共14字节。在字节。在VC中用一个结构类型描述:中用一个结构类型描述:tydef sturct WORD bfType; /.BMP文件的标志文件的标志,必须为必须为“BM”的的ASC码码 DWORD bfSize; /.BMP文件的大小(以字节为单位)文件的大小(以字节为单位) WORD bfReserved1; /保留,必须为保留,必须为0X0000 WORD bfReserved2; /保留,必须为保留,必须为0
11、X0000 DWORD bfOffBits; /从文件开头到位图数据开始的字节数从文件开头到位图数据开始的字节数 BITMAPFILEHEADER;文件头文件头信息头信息头彩色表彩色表位图位图点阵点阵(2)信息头,共)信息头,共40个字节。在个字节。在VC中用一个结构类型描述:中用一个结构类型描述:tydef sturct DWORD biSize; /本信息头占用的字节数本信息头占用的字节数: 0x28 LONG biWidth;/图像的宽度(以像素点为单位)图像的宽度(以像素点为单位) LONG biHeight;/图像的高度(以像素点为单位)图像的高度(以像素点为单位) WORD biP
12、lanes;/彩色表。彩色表。24位位.BMP文件为文件为0x1,无彩色表,无彩色表 WORD biBitCount; /一个像素点数据的位数一个像素点数据的位数 DWORD biCompression;/压缩方式,压缩方式,0x0为未压缩为未压缩 DWORD biSizeImage; /图象尺度图象尺度 LONG biXPelsPerMeter; /水平分辨率水平分辨率 LONG biYPelsPerMeter; /垂直分辨率垂直分辨率 DWORD biClrUsed; /使用的颜色数使用的颜色数 DWORD biClrImportant; /重要颜色数重要颜色数 BITMAPINFOHEA
13、DER; 文件头文件头信息头信息头彩色表彩色表位图位图点阵点阵(3)彩色表)彩色表 对于对于24位位BMP图像,每像素的三基色分别用图像,每像素的三基色分别用3个字节个字节记录,不需要彩色表。记录,不需要彩色表。 对于对于256色色BMP图像,每像素用一个字节记录,该字图像,每像素用一个字节记录,该字节表示颜色的编号。什么编号代表什么颜色,由彩色表节表示颜色的编号。什么编号代表什么颜色,由彩色表决定。决定。 通过像素编号查找彩色表,通过像素编号查找彩色表,从而获得该像素的从而获得该像素的RG B值。值。B0G0R0B1G1R1B255G255R2550号颜色号颜色1号颜色号颜色255号颜色号颜
14、色文件头文件头信息头信息头彩色表彩色表位图位图点阵点阵(4)位图点阵)位图点阵 24位位BMP图像,逐行逐列记录各像素的三基色值:图像,逐行逐列记录各像素的三基色值: 每像素点占用每像素点占用3 3个个BYTEBYTE,分别为,分别为B B,G G,R R。则一行像素至少要占。则一行像素至少要占用用3n3n个字节。位图电阵用一维数组存放,顺序为:个字节。位图电阵用一维数组存放,顺序为: (1 1)从最下面的一行开始,逐行存放,直到第)从最下面的一行开始,逐行存放,直到第0 0行;行; (2 2)当一行占用的字节数不是)当一行占用的字节数不是4 4的整数倍时,应补充的整数倍时,应补充1 13 3
15、个无效个无效字节,使一行占用的字节数能被字节,使一行占用的字节数能被4 4整除。所补充的无效字节可为任整除。所补充的无效字节可为任意值,不会影响图像内容。意值,不会影响图像内容。 例:设图像为例:设图像为638480638480(宽(宽高),则每行占用的有效高),则每行占用的有效字节数为字节数为6383=19146383=1914。但。但19141914不能被不能被4 4整除,应补充两个无整除,应补充两个无效字节,即每行占用的字节数为效字节,即每行占用的字节数为19161916。则:。则: 第第i i行、第行、第j j 列像素的蓝色分量在一维数组中的下标为列像素的蓝色分量在一维数组中的下标为:
16、 : (480-1-i)1916+j3 (480-1-i)1916+j3 第第i i行、第行、第j j 列像素的绿色分量在一维数组中的下标为列像素的绿色分量在一维数组中的下标为: : (480-1-i)1916+j3 + 1 (480-1-i)1916+j3 + 12.3 VC+下位图文件数据的读取与显示下位图文件数据的读取与显示BITMAPFILEHEADER FileHead; /存放文件头存放文件头BITMAPINFOHEADER InfoHead; /存放信息头存放信息头LPBYTE lpImage; /存放位图点阵,显示时需要存放位图点阵,显示时需要/存放像素的三基色值,存放像素的三
17、基色值,480列,列,640行行struct BYTE B; /红色分量红色分量 BYTE G; /蓝色分量蓝色分量 BYTE R; /绿色分量绿色分量 C3480640; /存放像素的存放像素的YSC值,值, 480列,列,640行行struct BYTE Y; /亮度亮度 BYTE S; /色饱和度色饱和度 BYTE C; /色调色调 YSC480640; (1)定义全局变量。一般在类的头文件中定义)定义全局变量。一般在类的头文件中定义(2)打开)打开BMP文件,读取像素。关键代码如下文件,读取像素。关键代码如下:CFile f;BOOL OK=f.Open( PathName, / Pa
18、thName= BMP文件名文件名 CFile:modeRead|CFile:typeBinary|CFile:shareExclusive, NULL );if(!OK) return; /如果打开失败如果打开失败f.Read(&FileHead,sizeof(FileHead); /读取文件头读取文件头f.Read(&InfoHead,sizeof(InfoHead); /读取信息头读取信息头short x,y,z; /计算每行字节数计算每行字节数z=(InfoHead.biWidth/4)*4+(InfoHead.biWidth%4 = = 0 ? 0 : 4); f.Seek(File
19、Head.bfOffBits,0); /移动文件指针,指向像素点存放的开始位置移动文件指针,指向像素点存放的开始位置f.Read(lpImage,InfoHead.biHeight*z*3); /读取全部像素读取全部像素f.Close(); /关闭文件关闭文件 (3)显示图像。调用下面的程序断可显示位图)显示图像。调用下面的程序断可显示位图:CClientDC dc(this); /建立客户区绘图对象建立客户区绘图对象dc.SetStretchBltMode(COLORONCOLOR); /按可延伸的彩色影射模式绘图按可延伸的彩色影射模式绘图:StretchDIBits ( dc.GetSaf
20、eHdc(), /得到绘图对象的句柄得到绘图对象的句柄 0,0,640,480, /客户区中的矩形(左上角坐标,右下角坐标)客户区中的矩形(左上角坐标,右下角坐标) 0,0,InfoHead.biWidth,InfoHead.biHeight, /源图像中的矩形源图像中的矩形 lpImage, /存放位图点阵的内存区存放位图点阵的内存区 (LPBITMAPINFO) &InfoHead, /存放信息头的内存区存放信息头的内存区 DIB_RGB_COLORS, /按三基色格式按三基色格式 SRCCOPY /将图像拷贝到显存将图像拷贝到显存);(3)从位图点阵中提取各像素的)从位图点阵中提取各像素
21、的RGB分量分量,存放到存放到C3数组中数组中,进而计算进而计算YSC分量分量:double u,v,c;for(y=InfoHead.biHeight-1;y=0;y-) /逐行转换逐行转换 memcpy(C3y,lpImage+(InfoHead.biHeight-1-y)*z*3,z*3); /存储到存储到C3数组数组 for(x=0;xInfoHead.biWidth;x+) YSCyx.Y=C3yx.R*0.3+C3yx.G*0.59+C3yx.B*0.11; /计算灰度计算灰度 u=(C3yx.B-YSCyx.Y)/(double)YSCyx.Y; /计算归一化蓝差分量计算归一化蓝
22、差分量 v=(C3yx.R-YSCyx.Y)/(double)YSCyx.Y; /计算归一化红差分量计算归一化红差分量 c=atan2(v,u)*180/3.14; /计算色调,弧度转换为度计算色调,弧度转换为度 if(c220的显示为白色,的显示为白色,灰度值灰度值=220的显示为黑的显示为黑色。色。(3) 估计图像中含有的信息量(熵)估计图像中含有的信息量(熵)熵是信息论中度量信息的紊乱程度的量。熵是信息论中度量信息的紊乱程度的量。在图像分析中,熵表示图像中的像素灰度值的不一致程度。在图像分析中,熵表示图像中的像素灰度值的不一致程度。熵的定义:熵的定义:上式中,上式中,H为熵,为熵,p(i), i=0,1,L-1 为直方图,为直方图,L为灰度级。为灰度级。H=3.03H=6.04