多媒体 图像的哈夫曼编码实现.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多媒体 图像的哈夫曼编码实现

实验二 图像的哈夫曼编码实现 一 实验目的 使学生掌握图像的哈夫曼编码及哈夫曼编码的实现过程。 二 实验环境 具有多媒体处理功能的计算安装有Windows操作系统,安装有Visual c++6.0程序设计软件。 三 实验要求 学习相关理论指导,掌握相关程序设计知识;按照实验步骤要求完成程序设计任务,书写实验报告,试验报告中要求包含程序实现的主要程序代码和程序运行结果或结果说明。 四 实验内容和实验步骤 1、使用应用程序向导生成哈夫曼编码程序框架和用于数据显示的界面 图2.1 显示界面 1)创建多文档应用程序:HuffmanExp(1)使用资源管理制作对话框IDD_DLG_HUFFMAN 资源管理制作对话框资源号分别为:IDC_LST_Table,IDC_EDIT1,IDC_EDIT2,IDC_EDIT3 图2.3 资源管理制作对话框(2)对应的数据成员定义为: CListCtrl m_lstTable; double m_dEntropy; double m_dAvgCodeLen; double m_dEfficiency; (3)为该对话框定义类CDlgHuffman class CDlgHuffman : public CDialog { // Construction public: CDlgHuffman(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CDlgHuffman) enum { IDD = IDD_DLG_HUFFMAN }; CListCtrl m_lstTable; double m_dEntropy; double m_dAvgCodeLen; double m_dEfficiency; //}}AFX_DATA public: // 灰度级别数目 int m_iColorNum; // 各个灰度值出现频率 FLOAT * m_fFreq; // 哈夫曼编码表 CString * m_strCode; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDlgHuffman) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CDlgHuffman) virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; 3)重载视图类的OnInitialUpdate()函数,用于获取DIB文件的信息来设置滚动显示范围。void CHuffmanExpView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CHuffmanExpDoc* pDoc = GetDocument(); CSize sizeTotal(pDoc-m_pDib-GetWidth(), pDoc-m_pDib-GetHeight()); SetScrollSizes(MM_TEXT, sizeTotal); CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()-m_pMainWnd; ASSERT_KINDOF(CMainFrame, pAppFrame); CRect rc; pAppFrame-GetClientRect(rc); if (rc.Width() = sizeTotal.cx rc.Height() = sizeTotal.cy (sizeTotal.cx0 || sizeTotal.cy0)) ResizeParentToFit(FALSE); } 4)重载视图类的OnDraw(CDC* pDC)函数实现图像显示。 void CHuffmanExpView::OnDraw(CDC* pDC) { CHuffmanExpDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here if (! pDoc-m_pDib-IsE

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档