下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一、彩色数字图像基础一、实验目的熟练掌握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
biBitCountDWORD
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个元素(如果该值为零,则有2biBitCount个元素)。数组中每个元素的类型是一个RGBQUAD结构,占4个字节,其定义如下:typedefstructtagRGBQUAD{BYTE
rgbBlue;//该颜色的蓝色分量BYTE
rgbGreen;//该颜色的绿色分量BYTE
rgbRed;//该颜色的红色分量BYTE
rgbReserved;//保留值}RGBQUAD;第四部分就是实际的图像数据了。对于用到调色板的位图,图像数据就是该像素颜在调色板中的索引值。对于真彩色图,图像数据就是实际的R、G、B值。下面针对2色、16色、256色位图和真彩色位图分别介绍。对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个像素。对于16色位图,用4位可以表示一个像素的颜色,所以一个字节可以表示2个像素。对于256色位图,一个字节刚好可以表示1个像素。对于真彩色图,三个字节才能表示1个像素,哇,好费空间呀!没办法,谁叫你想让图的颜色显得更亮丽呢,有得必有失嘛。要注意两点:(1)每一行的字节数必须是4的整倍数,如果不是,则需要补齐。这在前面介绍biSizeImage时已经提到了。(2)一般来说,bmp文件的数据从下到上,从左到右的。也就是说,从文件中最先读到的是图像最下面一行的左边第一个像素,然后是左边第二个像素……接下来是倒数第二行左边第一个像素,左边第二个像素……依次类推,最后得到的是最上面一行的最右一个像素。以上是bmp文件的存储结构,在matlab中我们只需要用imread()函数就可以读取图像文件,操作十分方便,调用该函数可以把图像数据读到矩阵中。三、实验内容调用imread()函数读取图像并显示出来;调用rgb2gray()把图像转化成灰度图像并显示出来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编人教版六年级语文上册第3课《古诗词三首》精美课件
- 双方交通事故处理调解协议书
- 现代技术服务费合同
- 遗产分割协议范本
- 学习英雄联盟课件
- 委托抵押房屋贷款合同
- 无损检测技术服务协议书
- 股权转让协议模板7000套for04初创公司
- 砌体工程劳务分包合同模板
- 基于云计算的智能校园管理系统建设合同(2024版)
- 网格员工作汇报 (第二稿)
- 国家治理现代化的理论框架及其构建
- 2024年保密法培训课件
- 应用心理学博士研究计划书
- 汶川大地震地震报告
- 骨科护士专科知识培训课件
- 犯罪的心理预防
- 外科手术中的术中出血控制
- 煤矿安全规程
- 学校食堂厨房规范化操作程序
- 第5课互联网接入课件2023-2024学年浙教版(2023)初中信息技术七年级上册
评论
0/150
提交评论