您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 数字图像实验哈夫曼编码的方法和实现1234
实验八哈夫曼编码的方法和实现一、实验目的1.掌握哈夫曼编码的基本理论和算法流程;2.用VC++6.0编程实现图像的哈夫曼编码。二、实验内容1.画出哈夫曼编码的算法流程;2.用VC++6.0编程实现哈夫曼编码。三、实验步骤(1)启动VC++6.0,打开Dip工程。(2)在菜单栏insertresoucedialognew,在对话框模版的非控制区点击鼠标右键,在弹出的对话框中选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文件拷贝到当前工程目录文件里面;并添加到当前工程。四、实验结果五、实验心得及体会通过做这次实验掌握了哈夫曼编码的基本理论和算法流程;掌握了编程实现图像的哈夫曼编码算法。
本文标题:数字图像实验哈夫曼编码的方法和实现1234
链接地址:https://www.777doc.com/doc-2425095 .html