《图像处理》

上传人:j****9 文档编号:46214456 上传时间:2018-06-24 格式:DOC 页数:167 大小:3.12MB
返回 下载 相关 举报
《图像处理》_第1页
第1页 / 共167页
《图像处理》_第2页
第2页 / 共167页
《图像处理》_第3页
第3页 / 共167页
《图像处理》_第4页
第4页 / 共167页
《图像处理》_第5页
第5页 / 共167页
点击查看更多>>
资源描述

《《图像处理》》由会员分享,可在线阅读,更多相关《《图像处理》(167页珍藏版)》请在金锄头文库上搜索。

1、- 1 -目录目录第一讲第一讲 WindowsWindows 位图(位图(BitmapBitmap)和调色板()和调色板(PalettePalette) .1 1第二讲第二讲 图象的几何变换图象的几何变换 .1919第三讲第三讲 图象的平滑(去噪声)图象的平滑(去噪声) ,锐化,锐化 .4141第四讲第四讲 图象的半影调和抖动技术图象的半影调和抖动技术 .5151第五讲第五讲 直方图修正和彩色变换直方图修正和彩色变换 .6363第六讲第六讲 腐蚀,膨胀,细化算法腐蚀,膨胀,细化算法 .9191第七讲第七讲 边沿检测与提取,轮廓跟踪边沿检测与提取,轮廓跟踪 .110110第八讲第八讲 图象的检测

2、,模板匹配图象的检测,模板匹配 .127127第九讲第九讲 图象的压缩编码,图象的压缩编码,JPEGJPEG 压缩编码标准压缩编码标准 .135135第十讲第十讲 图象处理编程工具的介绍,简单的多媒体编程图象处理编程工具的介绍,简单的多媒体编程 .152152- 2 -第一讲第一讲 Windows 位图(位图(Bitmap)和调色板)和调色板(Palette)1 1位图和调色板的概念位图和调色板的概念 如今 Windows(3.x 以及 95,NT)系列已经成为决大多数用户使用的操作系统。它比 DOS 成功的一个重要因素是它可视化的漂亮界面,例如你可以在桌面上铺上你喜欢的墙纸。 那么 Wind

3、ows 是如何显示图象的呢?这就要谈到位图(Bitmap) 。 我们知道,普通的显示器屏幕是由许许多多的点构成的,我们称之为象素。显示时采 用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若 干行,就扫过了一屏。为了防止闪烁,每秒要重复上述过程几十次。例如我们常说的屏幕分 辨率为 640*480,刷新频率为 70Hz,意思是说每行要扫描 640 个象素,一共有 480 行,每秒 重复扫描屏幕 70 次。我们称这种显示器为位映象设备。所谓位映象,就是指一个二维的象 素矩阵,而位图就是采用位映象方法显示和存储的图象。举个例子,下图 1 是一幅普通的黑 白位图,图 2

4、是被放大后的图,图中每个方格代表了一个象素,我们可以看到:整个骷髅就 是由这样一些黑点和白点组成的。图图 1.1.骷髅骷髅( (左左) ) 图图 2.2.放大后的骷髅位图放大后的骷髅位图( (右右) ) 那么,彩色图是怎么回事呢? 我们先来说说三元色 RGB 概念。我们知道,自然界中的所有颜色都可以由红,绿,蓝 (R,G,B)组合而成。有的颜色含有红色成分多一些,如深红;有的含有红色成分少一些, 如淡红。针对含有红色成分的多少,可以分成 0 到 255 共 256 个等级,0 级表示不含红色成 分,255 级表示含有 100%的红色成分。同样,绿色和蓝色也被分成 256 级。这种分级的概念 被

5、称作量化。这样,根据红,绿,蓝各种不同的组合我们就能表示出 256*256*256,约 1 千 6 百万种颜色。这么多颜色对于我们人眼来已经足够了。 下表是常见的一些颜色的 RGB 组合值。 颜色RGB 红25500 蓝00255 绿02550- 3 -黄2552550 紫2550255 青0255255 白255255255 黑000 灰128128128 表表 1.1.常见颜色的常见颜色的 RGBRGB 组合组合 你大概已经明白了,当一幅图中每个象素赋予不同的 RGB 值时,就能呈现出五彩缤纷 的颜色了,这样就形成了彩色图。对,是这样的,但实际上的做法还有些差别。 让我们来看看下面的例子。

6、 有一个长宽各为 200 个象素,颜色数为 16 色的彩色图,每一个象素都用 R,G,B 三个 分量表示,因为每个分量有 256 个级别,要用 8 位(bit) ,即一个字节(byte)来表示,所 以每个象素需要用 3 个字节。整个图象要用 200*200*3,约 120k 字节,可不是一个小数目 呀!如果我们用下面的方法,就能省的多。 因为是一个 16 色图,也就是说这幅图中最多只有 16 种颜色,我们可以用一个表:表 中的每一行记录一种颜色的 R,G,B 值。这样当我们表示一个象素的颜色时,只需要指出该 颜色是在第几行,即该颜色在表中的索引值。举个例子,如果表的第 0 行为 255,0,0

7、(红 色) ,那么当某个象素为红色时,只需要标明 0 即可。 让我们再来计算一下:16 种状态可以用 4 位(bit)表示,所以一个象素要用半个字节。 整个图象要用 200*200*0.5,约 20k 字节,再加上表占用的字节为 3*16=48 字节.整个占用 的字节数约为前面的 1/6,省很多吧。 这张 RGB 的表,即是我们常说的调色板(Palette),另一种叫法是颜色查找表 LUT(LookUpTable),似乎更确切一些。Windows 位图中便用到了调色板技术.其实是不光是 Windows 位图,许多图象文件格式如 pcx,tif,gif 等都用到了。所以很好地掌握调色板的 概念是

8、十分重要的. 有一种图,它的颜色数高达 256*256*256 种,也就是说包含我们上述提到的 R,G,B 颜色表示方法中所有的颜色,这种图叫做真彩色图(TrueColor)。真彩色图并不是说一幅图 包含了所有的颜色,而是说它具有显示所有颜色的能力,即最多可以包含所有的颜色。表示 真彩色图时,每个象素直接用 R,G,B 三个分量字节表示,而不采用调色板技术,原因很明 显:如果用调色板,表示一个象素也要用 24 位,这是因为每种颜色的索引要用 24 位(因为 总共有 2 的 24 次方种颜色,即调色板有 2 的 24 次方行),和直接用 R,G,B 三个分量表示 用的字节数一样,不但没有任何便宜

9、,还要加上一个 256*256*256*3 个字节的大调色板。所 以真彩色图直接用 R,G,B 三个分量表示,它又叫做 24 位色图。2 2BmpBmp 文件格式文件格式 介绍完位图和调色板的概念,下面就让我们来看一看 Windows 的位图文件(.bmp 文件) 的格式是什么样子的。 bmp 文件大体上分成四个部分,如图 3 所示。- 4 -图图 3.Windows3.Windows 位图文件结构示意图位图文件结构示意图( (右右) )第一部分为位图文件头 BITMAPFILEHEADER,是一个结构,其定义如下:typedefstructtagBITMAPFILEHEADER WORDbf

10、Type; DWORDbfSize; WORDbfReserved1; WORDbfReserved2; DWORDbfOffBits; BITMAPFILEHEADER; 这个结构的长度是固定的,为 14 个字节(WORD 为无符号 16 位整数,DWORD 为无符号 32 位整数) ,各个域的说明如下:bfTypebfType 指定文件类型,必须是 0x424D,即字符串“BM“,也就是说所有.bmp 文件的头两个字节 都是“BM“bfSizebfSize 指定文件大小,包括这 14 个字节 bfReserved1bfReserved1,bfReserved2bfReserved2 为保留

11、字,不用考虑bfOffBitsbfOffBits 为从文件头到实际的位图数据的偏移字节数,即图 3 中前三个部分的长度之和。 第二部分为位图信息头 BITMAPINFOHEADER,也是一个结构,其定义如下:typedef struct tagBITMAPINFOHEADER DWORDbiSize; LONGbiWidth; LONGbiHeight; WORDbiPlanes; WORDbiBitCount DWORDbiCompression; DWORDbiSizeImage; LONGbiXPelsPerMeter; LONGbiYPelsPerMeter; DWORDbiClrUs

12、ed;- 5 -DWORDbiClrImportant; BITMAPINFOHEADER; 这个结构的长度是固定的,为 40 个字节(WORD 为无符号 16 位整数,DWORD 无符 号 32 位整数,LONG 为 32 位整数) ,各个域的说明如下:biSizebiSize 指定这个结构的长度,为 40biWidthbiWidth 指定图象的宽度,单位是象素biHeightbiHeight 指定图象的高度,单位是象素biPlanesbiPlanes 必须是 1,不用考虑biBitCountbiBitCount 指定表示颜色时要用到的位数,常用的值为 1(黑白二色图),4(16 色图),8

13、(256 色) ,24(真彩色图) (新的.bmp 格式支持 32 位色,这里就不做讨论了) 。biCompressionbiCompression 指定位图是否压缩,有效的值为 BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一 些 Windows 定义好的常量) 。要说明的是,Windows 位图可以采用 RLE4,和 RLE8 的压缩格式, 但用的不多。我们今后所讨论的只有第一种不压缩的情况,即 biCompression 为 BI_RGB 的 情况。biSizeImagebiSizeImage 指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来

14、:biSizeImage=biWidth*biHeight 要注意的是:上述公式中的 biWidth必须是 4 的整倍数(所以不是 biWidth,而是 biWidth,表示大于或等于 biWidth 的,离 4 最近的整倍数。举个例子,如果 biWidth=240,则 biWidth=240;如果 biWidth=241,biWidth=244)如果 biCompression 为 BI_RGB,则该项可能为零biXPelsPerMeterbiXPelsPerMeter 指定目标设备的水平分辨率,单位是每米的象素个数,关于分辨率的概念,我们将在 打印部分详细介绍。biYPelsPerMete

15、rbiYPelsPerMeter 指定目标设备的垂直分辨率,单位同上。biClrUsedbiClrUsed 指定本图象实际用到的颜色数,如果该值为零,则用到的颜色数为 2 的 biBitCount 次 方。biClrImportantbiClrImportant 指定本图象中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的。 第三部分为调色板(Palette),当然,这里是对那些需要调色板的位图文件而言的。有 些位图,如真彩色图,前面已经讲过,是不需要调色板的,BITMAPINFOHEADER 后直接是位 图数据。 调色板实际上是一个数组,共有 biClrUsed 个元素(如果该值为零,则有 2 的 biBitCount 次方个元素) 。数组中每个元素的类型是一个 RGBQUAD 结构,占 4 个字节,其定 义如下:typedef struct tagRGBQUAD- 6 -BYTErgbBlue;/该颜色的蓝色分量 BYTErgbGreen;/该颜色的绿色分量 BYT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号