欢迎来到天天文库
浏览记录
ID:49976185
大小:271.00 KB
页数:11页
时间:2020-03-03
《图像的霍夫曼编码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验六图像的霍夫曼编码一、实验目的:1)理解并熟练对图像进行霍夫曼编码的算法;2)进一步加深对所学数字图像处理内容的认识;3)能够利用各种软件对算法加以实现。二、实验内容:1)对数字图像进行哈弗曼编码2)对数字图像进行算术编码3)分析所得到的结果。三、实验原理哈夫曼(Huffman)编码是一种常用的压缩编码方法,是Huffman于1952年为压缩文本文件建立的。它的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。具体算法如下:1)首先统计出每个符号出现的频率,上例S0到S7
2、的出现频率分别为4/14,3/14,2/14,1/14,1/14,1/14,1/14,1/14。2)从左到右把上述频率按从小到大的顺序排列。3)每一次选出最小的两个值,作为二叉树的两个叶子节点,将和作为它们的根节点,这两个叶子节点不再参与比较,新的根节点参与比较。4)重复(3),直到最后得到和为1的根节点。5)将形成的二叉树的左节点标0,右节点标1。把从最上面的根节点到最下面的叶子节点途中遇到的0,1序列串起来,就得到了各个符号的编码。四、实验过程1)实验流程图霍夫曼编码示意图如下:1)实验代码见实验报告附页。一、实验结果1)打开要进行编码的图片,如下图所示:1)
3、对图片进行霍夫曼编码,得到如下结果:一、实验总结1)通过本实验,进一步加深了对霍夫曼编码的实验原理和算法的理解和认识;2)加强了分析问题和解决问题的能力;3)熟练了软件的使用能力,提高了利用软件对数字图像进行处理的能力。附页:实验代码:unsignedint PcxBytesPerLine;BOOLLoadPcxFile(HWNDhWnd,char*PcxFileName){ FILE *PCXfp; PCXHEAD
4、 header; LOGPALETTE *pPal; HPALETTE hPrevPalette; HDC hDc; HLOCAL hPal; DWORD ImgSize; DWORD OffBits,BufSize; LPBITMAPINFOHEADE
5、R lpImgData; DWORD i; LONG x,y; int PcxTag; unsignedchar LineBuffer[6400]; LPSTR lpPtr; HFILE hfbmp;if((PCXfp=fopen(PcxFi
6、leName,"rb"))==NULL){//文件没有找到MessageBox(hWnd,"Filec:\test.pcxnotfound!","ErrorMessage",MB_OK
7、MB_ICONEXCLAMATION);returnFALSE; } //读出头信息 fread((char*)&header,1,sizeof(PCXHEAD),PCXfp); if(header.manufacturer!=0x0a){//不是一个合法的PCX文件MessageBox(hWnd,"NotavalidPcxfile!","ErrorM
8、essage",MB_OK
9、MB_ICONEXCLAMATION);fclose(PCXfp); returnFALSE; } //将文件指针指向调色板开始处 fseek(PCXfp,-769L,SEEK_END); //获取颜色数信息 PcxTag=fgetc(PCXfp)&0xff; if(PcxTag!=12){//非256色,返回 MessageBox(hWnd,"Nota256colorsPcxfile!","ErrorMessage",MB_OK
10、MB_ICON
11、EXCLA
此文档下载收益归作者所有