数字图像实验哈夫曼编码的方法和实现1234

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验八哈夫曼编码的方法和实现一、实验目的1.掌握哈夫曼编码的基本理论和算法流程;2.用VC++6.0编程实现图像的哈夫曼编码。二、实验内容1.画出哈夫曼编码的算法流程;2.用VC++6.0编程实现哈夫曼编码。三、实验步骤(1)启动VC++6.0,打开Dip工程。(2)在菜单栏insertresoucedialognew,在对话框模版的非控制区点击鼠标右键,在弹出的对话框中选properties,设置为ID:IDD_DLG_Huffman,C标题:哈夫曼编码表。(3)在弹出的对话框中,添加如下的按钮等控件:(4)在ResourceView栏中Menu选IDR_DIPTYPE,如图在图像编码菜单栏下空的一栏中,右键鼠标,在弹出的对话框中选属性properties,在弹出的对话框中,进行如下的设置(5)右击哈夫曼编码表菜单栏,在建立的类向导中进行如下设置(6)在DipDoc.cpp中找到voidCDipDoc::OnCodeHuffman()添加如下代码voidCDipDoc::OnCodeHuffman(){intimgSize;imgSize=m_pDibObject-GetWidth()*m_pDibObject-GetHeight();//在点处理CPointPro类中创建用来绘制直方图的数据CPointProPointOperation(m_pDibObject);int*pHistogram=PointOperation.GetHistogram();//生成一个对话框CHistDlg类的实例CDlgHuffmanHuffmanDlg;//将绘制直方图的数据传递给CHistDlg对话框类的公有成员变量m_pnHistogramif(pHistogram!=NULL){//设置直方图数据指针HuffmanDlg.m_fFreq=pHistogram;HuffmanDlg.m_iSizeImage=imgSize;if(m_pDibObject-GetNumBits()=8)HuffmanDlg.m_iLeafNum=256;elseHuffmanDlg.m_iLeafNum=m_pDibObject-GetNumBits();}//显示对话框if(HuffmanDlg.DoModal()!=IDOK)return;delete[]pHistogram;}(7)在DipDoc.cpp中添加#includeDlgHuffman.h(8)将DlgHuffman.h、DlgHuffman.cpp文件拷贝到当前工程目录文件里面;并添加到当前工程。四、实验结果五、实验心得及体会通过做这次实验掌握了哈夫曼编码的基本理论和算法流程;掌握了编程实现图像的哈夫曼编码算法。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功