《图像处理技术》实验指导书(试用版)长江大学电子信息学院2010年6月
《图像处理技术》实验指导书 (试用版) 长江大学电子信息学院 2010 年 6 月
目录第一部分基于C语言的图像处理实验实验一数字图像的输入输出及直方图统计实验二灰度图像的线性变换1224实验三灰度图像的平滑处理实验四灰度图像的锐化处理34第二部分基于VC的图像处理实验4343实验一数字图像的输入输出及直方图统计69实验二灰度图像的线性变换实验三灰度图像的平滑处理77.83实验四灰度图像的锐化处理
目 录 第一部分 基于 C 语言的图像处理实验 .1 实验一 数字图像的输入输出及直方图统计.1 实验二 灰度图像的线性变换.12 实验三 灰度图像的平滑处理.24 实验四 灰度图像的锐化处理.34 第二部分 基于 VC 的图像处理实验.43 实验一 数字图像的输入输出及直方图统计.43 实验二 灰度图像的线性变换.69 实验三 灰度图像的平滑处理.77 实验四 灰度图像的锐化处理.83
第一部分基于C语言的图像处理实验实验一数字图像的输入输出及直方图统计一、实验目的1.了解BMP图像的基本格式;2.了解BMP图像文件的打开和存储3.利用C编写BMP图像的打开和存储的程序:4.了解对灰度图像进行直方图统计的过程:5.在微机上调试程序。二、实验原理1.BMP图像文件格式BMP图像文件是MicrosoftWindows所规定的图像文件格式。随着Windows的风行全球,BMP图像文件也就成为PC机上流行的图像文件格式。BMP图像文件具有下列六项特色。(1)文件结构只能存放一幅图像。(2)可以存储单色、16色、256色和全彩色四种图像数据。(3)图像数据可选择压缩或不压缩处理(4)WindoWs设计了两种压缩方式:RLE4和RLE8。RLE4处理16色图像数据:而RLE8则是压缩256图像数据。(5)图像数据排列顺序,与一般图像文件有所不同。(6)调色板的数据结构特殊。(1)BMP文件内容BMP图像文件的文件结构如图2-1所示,可分为三部分:表头、调色板和图像数据。表头长度固定为54个字节。只有全彩色BMP图像文件内没有调色板数据,其余不超过256种颜色的图像文件都必须设定调色板信息,即使是单色BMP图像文件也不例外。1
1 第一部分 基于 C 语言的图像处理实验 实验一 数字图像的输入输出及直方图统计 一、实验目的 1.了解 BMP 图像的基本格式; 2.了解 BMP 图像文件的打开和存储; 3.利用 C 编写 BMP 图像的打开和存储的程序; 4.了解对灰度图像进行直方图统计的过程; 5.在微机上调试程序。 二、实验原理 1.BMP 图像文件格式 BMP 图像文件是 Microsoft Windows 所规定的图像文件格式。随着 Windows 的风行全 球,BMP 图像文件也就成为 PC 机上流行的图像文件格式。 BMP 图像文件具有下列六项特色。 (1)文件结构只能存放一幅图像。 (2)可以存储单色、16 色、256 色和全彩色四种图像数据。 (3)图像数据可选择压缩或不压缩处理 (4)Windows 设计了两种压缩方式:RLE4 和 RLE8。RLE4 处理 16 色图像数据;而 RLE8 则是压缩 256 图像数据。 (5)图像数据排列顺序,与一般图像文件有所不同。 (6)调色板的数据结构特殊。 (1)BMP 文件内容 BMP 图像文件的文件结构如图 2-1 所示,可分为三部分:表头、调色板和图像数据。 表头长度固定为 54 个字节。只有全彩色 BMP 图像文件内没有调色板数据,其余不超过 256 种颜色的图像文件都必须设定调色板信息,即使是单色 BMP 图像文件也不例外
BMP表头数据调色板数据图像数据图2-1BMP文件结构BMP图像文件的文件结构设计的颇为简单,只允许每个文件存放一幅图像。(a)BMP表头数据Windows把BMP图像文件表头细分成两组数据结构,第一组命名为位图文件头(BITMAPFILEHEADER),第二组称作位图信息头(BITMAPINFOHEADER),如果还需要调色板数据,则存放在表头之后。以下分别说明BITMAPFILEHEADER(见表1)和BITMAPINFOHEADER(见表2)这两组数据结构的内容。表1BITMAPFILEHEADER数据内容(14个字节)数据地址数据类型数据名称0unsigned charbfType[2]2bfSizeunsignedlong6unsigned intbfReserved18bfReserved2unsigned int10bfOffBitsunsigned longbfType[2]:内容固定为“BM”(0x42及0x4D),作为文件辨识之用,表示这个文件是BMP图像文件。bfSize:BMP图像文件的文件大小。bfReserved1和bfReserved2:两个都是保留值,没有任何作用,其值都设定为0。bfOfBits:指示图像数据文件内的起始地址。表2BITMAPINFOHEADER数据内容(40个字节)数据地址数据类型数据名称14unsigned longbiSize18biWidthunsigned long22biHeighunsigned long26biPlaneunsigned int28biBitCoununsigned int30unsigned longbiCompression34unsigned longbiSizelmage38biXPelsPerMeterunsigned long42unsigned longbiYPelsPerMeter2
2 BMP 表头数据 调色板数据 图像数据 图 2-1 BMP 文件结构 BMP 图像文件的文件结构设计的颇为简单,只允许每个文件存放一幅图像。 (a)BMP 表头数据 Windows 把 BMP 图像文件表头细分成两组数据结构,第一组命名为位图文件头 (BITMAPFILEHEADER),第二组称作位图信息头(BITMAPINFOHEADER),如果还需 要调色板数据,则存放在表头之后。以下分别说明 BITMAPFILEHEADER(见表 1)和 BITMAPINFOHEADER(见表 2)这两组数据结构的内容。 表 1 BITMAPFILEHEADER 数据内容(14 个字节) 数据地址 数据类型 数据名称 0 unsigned char bfType[2] 2 unsigned long bfSize 6 unsigned int bfReserved1 8 unsigned int bfReserved2 10 unsigned long bfOffBits bfType[2]:内容固定为“BM”(0x42 及 0x4D),作为文件辨识之用,表示这个文件是 BMP 图像文件。 bfSize:BMP 图像文件的文件大小。 bfReserved1 和 bfReserved2:两个都是保留值,没有任何作用,其值都设定为 0。 bfOffBits:指示图像数据文件内的起始地址。 表 2 BITMAPINFOHEADER 数据内容(40 个字节) 数据地址 数据类型 数据名称 14 unsigned long biSize 18 unsigned long biWidth 22 unsigned long biHeigh 26 unsigned int biPlane 28 unsigned int biBitCoun 30 unsigned long biCompression 34 unsigned long biSizeImage 38 unsigned long biXPelsPerMeter 42 unsigned long biYPelsPerMeter
46biClrUsedunsigned long50unsigned longbiClrImportantbiSize:代表BITMAPINFOHEADER数据结构的大小,这项值固定为4O。biWidth:图像行(水平方向)的点数。biHeight:图像列(垂直方向)的点数。biPlane:图像平面数,这个值固定为1。biBitCount:以几个Bits存储图像的一点,这项值只有可能是1,4,8或24。biCompression:压缩类型,这个值可能是0,1,或2。0表示文件内的图像数据未曾压缩。1或2表示图像数据已经压缩处理过。1是代表所压缩的图像数据是256色,2代表所压缩的图像数据是16色。因为BMP图像文件在压缩16色或256色图像数据时,所采用的压缩方法有些差异,所以必须用1或2分别表示256或16色图像数据。至于单色和全彩色的图像数据,在BMP文件中一律不压缩处理,这是BMP图像文件非常特殊的一点。biSizelmage:压缩图像的大小,表示压缩的BMP图像文件内的图像数据占用了多少字节。(例如,一个BMP图像文件中若存有320x200的256色图像,且图像数据没有经过压缩处理,则biSizelmage=64000字节。)biXPelsPerMeter:代表水平方向的分辨率,每米包含多少点。biYPelsPerMeter:代表垂直方向的分辨率,每米包含多少点。biCIrUsed:指出图像使用了几种颜色。例如,在16色模式下,这项值若为12,便表示本图像一共用了12种颜色。如果值设为0,则代表所有16种颜色都被采用。biClrlmportant:指出有几种颜色在图像中是重要颜色。值若设为O,即表示所有可用颜色都是重要颜色。(b)调色板数据Windows将BMP图像文件的调色板数据结构,命名为RGBQUAD(见表3)表3调色板数据结构数据地址数据类型数据名称0unsigned charrgbBlue1unsigned charrgbGreen2rgbRedunsigned char13unsigned charrgbReservedRGBQUAD存放调色板数据。请注意此处调色板数据的排列顺序一一蓝、绿、红,与一般图像文件的颜色数据排列顺序正好相反。调色板数据结构内,还多了一个保留值rgbReserved,没有任何意义,应将它设定为0。调色板结构的大小为4*N,其中N的取值如下:3
3 46 unsigned long biClrUsed 50 unsigned long biClrImportant biSize:代表 BITMAPINFOHEADER 数据结构的大小,这项值固定为 40。 biWidth:图像行(水平方向)的点数。 biHeight:图像列(垂直方向)的点数。 biPlane:图像平面数,这个值固定为 1。 biBitCount:以几个 Bits 存储图像的一点,这项值只有可能是 1,4,8 或 24。 biCompression:压缩类型,这个值可能是 0,1,或 2。0 表示文件内的图像数据未曾 压缩。 1 或 2 表示图像数据已经压缩处理过。1 是代表所压缩的图像数据是 256 色,2 代表所压 缩的图像数据是 16 色。因为 BMP 图像文件在压缩 16 色或 256 色图像数据时,所采用的 压缩方法有些差异,所以必须用 1 或 2 分别表示 256 或 16 色图像数据。至于单色和全彩 色的图像数据,在 BMP 文件中一律不压缩处理,这是 BMP 图像文件非常特殊的一点。 biSizeImage:压缩图像的大小,表示压缩的 BMP 图像文件内的图像数据占用了多少 字节。(例如,一个 BMP 图像文件中若存有 320200 的 256 色图像,且图像数据没有经过 压缩处理,则 biSizeImage=64000 字节。) biXPelsPerMeter:代表水平方向的分辨率,每米包含多少点。 biYPelsPerMeter:代表垂直方向的分辨率,每米包含多少点。 biClrUsed:指出图像使用了几种颜色。例如,在 16 色模式下,这项值若为 12,便表 示本图像一共用了 12 种颜色。如果值设为 0,则代表所有 16 种颜色都被采用。 biClrImportant:指出有几种颜色在图像中是重要颜色。值若设为 0,即表示所有可用 颜色都是重要颜色。 (b)调色板数据 Windows 将 BMP 图像文件的调色板数据结构,命名为 RGBQUAD(见表 3) 表 3 调色板数据结构 数据地址 数据类型 数据名称 0 unsigned char rgbBlue 1 unsigned char rgbGreen 2 unsigned char rgbRed 3 unsigned char rgbReserved RGBQUAD 存放调色板数据。请注意此处调色板数据的排列顺序——蓝、绿、红,与一般图像文 件的颜色数据排列顺序正好相反。调色板数据结构内,还多了一个保留值 rgbReserved,没 有任何意义,应将它设定为 0。 调色板结构的大小为 4*N,其中 N 的取值如下: