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