1、1,实验一 图像文件认识实验,2,实验准备 熟练运用某种编程工具语言提供的图象操作方法 实验内容 1认识数字图象 2编写程序,打开BMP格式图像文件 3编写程序,打开JPG格式图像文件 (,选一) 要求: 1、独立完成程序的编写 2、写出实验报告 3、实验每组1人 实验设备:每组计算机一台,3,图象文件格式,四种应用比较广泛的格式为: (1) BMP(BitMaP)格式 (2) GIF(Graphics Interchange Format)格式 (3) TIFF(Tagged Image Format File)格式 (4) JPEG格式,4,图像文件一般由文件头、色调数据和像素数据三部分组
2、成。,文件头文件头用于存放图像的特征参数及其存放位置和文字注解等。它有固定格式及灵活格式两大类。前者如 PCX、BMP等,它们存储规定的参数,且数据在文件中的存放位置是固定的;后者如 TIF文件格式,文件中除了规定的参数外,还可自行定义特征参数,数据在文件中的存放位置也不固定,且同一文件中可存放多幅图像。,5,色调数据 色调数据是指16色和256色彩色显示模式下的调色板数据,真彩色图像则不需要色调数据。有些图像文件格式中色调数据放在文件头中。,像素数据像素数据以位图的形式存放,有压缩、不压缩之分,压缩数据可以节省存储容量,但在存取时需进行压缩和解压缩处理,处理速度稍慢些。不压缩的像素数据在不同
3、格式的图像文件中的存储结构基本相同,与显示存储器中的存放形式相似。常用的压缩方法为行程编码、霍夫曼编码和LZW压缩编码等。,6,例.BMP图象文件格式,BMP位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。,7,struct BMP_FILE struct BITMAPFILEHEADER bitmapfileHead;struct BITMAPINFO bitmapinfo;BYTE bitmap; ;,8,typed
4、ef struct UINT bfType; DWORD bfSize; UINT bfReserved1; UINT bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER;,typedef structBITMAPINFOHEADER bmiHeader;RGBQUAD bmiColorsn; BITMAPINFO;,typedef struct DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD bi
5、SizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADER;,typedef struct BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; RGBQUAD;,9,int loadBMP(char *file, char image) /*8位无压缩的灰度值BMP*/ struct BMP_BITMAPFILEHEADER filehead;struct BMP_BITMAPINFOHEADER bmi;FILE *fp;fp=fopen(file,“rb“); /*打开图像文件*/if (fp!=NULL)fread(,注:以上程序,只具有参考价值.,