图像的霍夫曼编码.doc

图像的霍夫曼编码.doc

ID:49976185

大小:271.00 KB

页数:11页

时间:2020-03-03

图像的霍夫曼编码.doc_第1页
图像的霍夫曼编码.doc_第2页
图像的霍夫曼编码.doc_第3页
图像的霍夫曼编码.doc_第4页
图像的霍夫曼编码.doc_第5页
资源描述:

《图像的霍夫曼编码.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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。