欢迎来到天天文库
浏览记录
ID:13987753
大小:475.50 KB
页数:6页
时间:2018-07-25
《多媒体实验报告-图像显示与处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、多媒体技术试验报告课题名称图像显示与处理姓名代高凯学号201027209学院通信与电子工程学院指导教师邢延超6图像显示与处理(2学时)一、实验目的1、掌握BMP文件格式,熟悉各参数和图像数据的存放方式;2、通过编程实现对图像内容的读取(到内存中);3、完成图像的显示,掌握设备环境上下文(DC)的使用方式。4、对图像进行二值化、求边缘、增强等简单处理。二、实验仪器设备、工具及材料设备:多媒体计算机。软件:VisualStudio6.0及以上版本。材料:灰度图像,24位真彩色图像(均为非压缩BMP格式)等。三、实验知识准备1、BMP
2、文件格式BMP是Bitmap(位图)的简写,是Windows操作系统中的标准图像文件格式。Windows3.0以前的BMP图文件格式与显示设备有关,称为设备相关位图DDB文件格式。Windows3.0以后的BMP图象文件与显示设备无关,因此称为设备无关位图DIB(device-independentbitmap)格式。BMP文件由4部分组成:位图文件头(BITMAPFILEHEADER)、位图信息头(BITMAPINFOHEADER)、彩色表(RGBQUAD)和图像数据阵列。对应的数据结构定义如下(来自MSDN)。typedef
3、structtagBITMAPFILEHEADER{WORDbfType;//filetype,mustbeBMDWORDbfSize;//size(bytes)ofthebitmapfileWORDbfReserved1;WORDbfReserved2;DWORDbfOffBits;//offset(bytes)fromthisstructuretothebitmapbits}BITMAPFILEHEADER;typedefstructtagBITMAPINFO{BITMAPINFOHEADERbmiHeader;RGBQUA
4、DbmiColors[1];}BITMAPINFO,*PBITMAPINFO;typedefstructtagRGBQUAD{BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//bytesrequiredbythestructureLONGbiWidth;LONGbiHeight;WORDbiPlanes;//numberofplanes,mustbe1WORDbiB
5、itCount;//numberofbits-per-pixelDWORDbiCompression;//BI_RGB:uncompressedDWORDbiSizeImage;//size(bytes)ofimage,setto0forBI_RGBbitmapsLONGbiXPelsPerMeter;//horizontalresolutionLONGbiYPelsPerMeter;//verticalresolutionDWORDbiClrUsed;DWORDbiClrImportant;}BITMAPINFOHEADER;
6、自然界所有颜色都可由红、绿、蓝(R,G,B)组合而成。R/G/B各自分成256级,6这种分级概念称为量化,这样就能表示256×256×256约1600万种颜色,这对于人眼来说已经足够丰富了。对于颜色数远远少于1600万种的彩色图,可以用一个表:表中的每一行记录一种颜色的R、G、B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值。这张R、G、B的表,就是我们常说的调色板(Palette),另一种叫法是颜色查找表LUT(LookUpTable)。用R、G、B颜色表示所有的颜色叫做真彩色图(tru
7、ecolor)。表示真彩色图时,每个象素直接用R、G、B三个分量字节表示,而不采用调色板技术。真彩色图又叫做24位色图。在Windows下,RGB颜色阵列存储的格式其实BGR。而32位的RGB位图像素数据格式是:蓝色B值、绿色G值、红色R值、透明通道A值。透明通道也称Alpha通道,该值是该像素点的透明属性,取值在0(全透明)到255(不透明)之间。2、BMP文件加载加载文件的目的是要得到图片属性及RGB数据,以便将其绘制在DC上。首先,加载文件头:BITMAPFILEHEADERheader;memset(&header,0,
8、sizeof(header));inf.read((char*)&header,sizeof(header));然后,加载位图信息头:BITMAPINFOHEADERinfoheader;memset(&infoheader,0,sizeof(infoheade
此文档下载收益归作者所有