多媒体技术实验实验一.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

实验一、彩色数字图像基础

一、实验目的

熟练掌握matlab中常用的各种简单命令;

了解常用的图像文件格式及bmp文件的结构;

用matlab读取图像文件并显示出来

用matlab对图像进行简单变换

二、基本原理讲解

常用bmp文件结构

bmp文件大体上分成四个部分,如表1所示。

表1Windows位图文件结构示意图

位图文件头BITMAPFILEHEADER

位图信息头BITMAPINFOHEADER

调色板Palette

实际的位图数据ImageDate

第一部分为位图文件头BITMAPFILEHEADER,是一个结构,其定义如下:

typedefstructtagBITMAPFILEHEADER{

WORD??????????bfType;

DWORDbfSize;

WORD??????????bfReserved1;

WORD??????????bfReserved2;

DWORDbfOffBits;

}BITMAPFILEHEADER;

这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整数),各个域的说明如下:

bfType

指定文件类型,必须是0x424D,即字符串“BM”,也就是说所有.bmp文件的头两个字节都是“BM”。

bfSize

指定文件大小,包括这14个字节。

bfReserved1,bfReserved2?????

为保留字,不用考虑

bfOffBits

为从文件头到实际的位图数据的偏移字节数,即图1中前三个部分的长度之和。

第二部分为位图信息头BITMAPINFOHEADER,也是一个结构,其定义如下:

typedefstructtagBITMAPINFOHEADER{

DWORD?biSize;

LONG???????????biWidth;

LONG???????????biHeight;

WORD??????????biPlanes;

WORD??????????biBitCount

DWORD?biCompression;

DWORD?biSizeImage;

LONG???????????biXPelsPerMeter;

LONG???????????biYPelsPerMeter;

DWORD?biClrUsed;

DWORD?biClrImportant;

}BITMAPINFOHEADER;

这个结构的长度是固定的,为40个字节(LONG为32位整数),各个域的说明如下:

biSize

指定这个结构的长度,为40。

biWidth

指定图像的宽度,单位是像素。

biHeight

指定图像的高度,单位是像素。

biPlanes

必须是1,不用考虑。

biBitCount

指定表示颜色时要用到的位数,常用的值为1(黑白二色图),4(16色图),8(256色),24(真彩色图)(新的.bmp格式支持32位色,这里就不做讨论了)。

biCompression

指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一些Windows定义好的常量)。要说明的是,Windows位图可以采用RLE4,和RLE8的压缩格式,但用的不多。我们今后所讨论的只有第一种不压缩的情况,即biCompression为BI_RGB的情况。

biSizeImage

指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来:

biSizeImage=biWidth’×biHeight

要注意的是:上述公式中的biWidth’必须是4的整倍数(所以不是biWidth,而是biWidth’,表示大于或等于biWidth的,最接近4的整倍数。举个例子,如果biWidth=240,则biWidth’=240;如果biWidth=241,biWidth’=244)。

如果biCompression为BI_RGB,则该项可能为零

biXPelsPerMeter

指定目标设备的水平分辨率,单位是每米的像素个数。

biYPelsPerMeter

指定目标设备的垂直分辨率,单位同上。

biClrUsed

指定本图像实际用到的颜色数,如果该值为零,则用到的颜色数为2biBitCount。

biClrImportant

指定本图像中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的。

第三部分为调色板Palette,当然,这里是对那些需要调色板的位图文件而言的。有些位图,如真彩色图,前面已经讲过,是不需要调色板的,BITMAPINFOHEADER后直接是位图数据。

调色板实际上是一个数组,共有biClrUsed个元素(如果该值为零,则有2b

文档评论(0)

+ 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档