资源目录
压缩包内文档预览:(预览前20页/共63页)
编号:517131
类型:共享资源
大小:1.34MB
格式:RAR
上传时间:2015-11-12
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
3.6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
图像小波变换实现及EZW编码理论研究,毕业设计论文
- 内容简介:
-
=MICROSOFT FOUNDATION CLASS LIBRARY : ImageDWT=AppWizard has created this ImageDWT application for you. This applicationnot only demonstrates the basics of using the Microsoft Foundation classesbut is also a starting point for writing your application.This file contains a summary of what you will find in each of the files thatmake up your ImageDWT application.ImageDWT.dspThis file (the project file) contains information at the project level andis used to build a single project or subproject. Other users can share theproject (.dsp) file, but they should export the makefiles locally.ImageDWT.hThis is the main header file for the application. It includes otherproject specific headers (including Resource.h) and declares theCImageDWTApp application class.ImageDWT.cppThis is the main application source file that contains the applicationclass CImageDWTApp.ImageDWT.rcThis is a listing of all of the Microsoft Windows resources that theprogram uses. It includes the icons, bitmaps, and cursors that are storedin the RES subdirectory. This file can be directly edited in MicrosoftVisual C+.ImageDWT.clwThis file contains information used by ClassWizard to edit existingclasses or add new classes. ClassWizard also uses this file to storeinformation needed to create and edit message maps and dialog datamaps and to create prototype member functions.resImageDWT.icoThis is an icon file, which is used as the applications icon. Thisicon is included by the main resource file ImageDWT.rc.resImageDWT.rc2This file contains resources that are not edited by Microsoft Visual C+. You should place all resources not editable bythe resource editor in this file./For the main frame window:MainFrm.h, MainFrm.cppThese files contain the frame class CMainFrame, which is derived fromCMDIFrameWnd and controls all MDI frame features.resToolbar.bmpThis bitmap file is used to create tiled images for the toolbar.nts The initial toolbar and status bar are constructed in the CMainFrameclass. Edit this toolbar bitmap using the resource editor, andupdate the IDR_MAINFRAME TOOLBAR array in ImageDWT.rc to addtoolbar buttons./For the child frame window:ChildFrm.h, ChildFrm.cppThese files define and implement the CChildFrame class, whichsupports the child windows in an MDI application./AppWizard creates one document type and one view:ImageDWTDoc.h, ImageDWTDoc.cpp - the documentThese files contain your CImageDWTDoc class. Edit these files toadd your special document data and to implement file saving and loading(via CImageDWTDoc:Serialize).ImageDWTView.h, ImageDWTView.cpp - the view of the documentThese files contain your CImageDWTView class.CImageDWTView objects are used to view CImageDWTDoc objects.resImageDWTDoc.icoThis is an icon file, which is used as the icon for MDI child windowsfor the CImageDWTDoc class. This icon is included by the mainresource file ImageDWT.rc./Other standard files:StdAfx.h, StdAfx.cppThese files are used to build a precompiled header (PCH) filenamed ImageDWT.pch and a precompiled types file named StdAfx.obj.Resource.hThis is the standard header file, which defines new resource IDs.Microsoft Visual C+ reads and updates this file./Other notes:AppWizard uses TODO: to indicate parts of the source code youshould add to or customize.If your application uses MFC in a shared DLL, and your application is in a language other than the operating systems current language, youwill need to copy the corresponding localized resources MFC42XXX.DLLfrom the Microsoft Visual C+ CD-ROM onto the system or system32 directory,and rename it to be MFCLOC.DLL. (XXX stands for the language abbreviation.For example, MFC42DEU.DLL contains resources translated to German.) If youdont do this, some of the UI elements of your application will remain in thelanguage of the operating system./nts定义新CDibNew对象/ 暂时分配内存,以保存新图像CDib* pDibNew;pDibNew = new CDib;/ 如果分配内存失败,则推出if(!cdib.CopyDIB(pDoc-m_pDibSource,pDibNew)/ 释放已分配内存pDibNew-Empty();return;nts=MICROSOFT FOUNDATION CLASS LIBRARY : ImageDWT=AppWizard has created this ImageDWT application for you. This applicationnot only demonstrates the basics of using the Microsoft Foundation classesbut is also a starting point for writing your application.This file contains a summary of what you will find in each of the files thatmake up your ImageDWT application.ImageDWT.dspThis file (the project file) contains information at the project level andis used to build a single project or subproject. Other users can share theproject (.dsp) file, but they should export the makefiles locally.ImageDWT.hThis is the main header file for the application. It includes otherproject specific headers (including Resource.h) and declares theCImageDWTApp application class.ImageDWT.cppThis is the main application source file that contains the applicationclass CImageDWTApp.ImageDWT.rcThis is a listing of all of the Microsoft Windows resources that theprogram uses. It includes the icons, bitmaps, and cursors that are storedin the RES subdirectory. This file can be directly edited in MicrosoftVisual C+.ImageDWT.clwThis file contains information used by ClassWizard to edit existingclasses or add new classes. ClassWizard also uses this file to storeinformation needed to create and edit message maps and dialog datamaps and to create prototype member functions.resImageDWT.icoThis is an icon file, which is used as the applications icon. Thisicon is included by the main resource file ImageDWT.rc.resImageDWT.rc2This file contains resources that are not edited by Microsoft Visual C+. You should place all resources not editable bythe resource editor in this file./For the main frame window:MainFrm.h, MainFrm.cppThese files contain the frame class CMainFrame, which is derived fromCMDIFrameWnd and controls all MDI frame features.resToolbar.bmpThis bitmap file is used to create tiled images for the toolbar.nts The initial toolbar and status bar are constructed in the CMainFrameclass. Edit this toolbar bitmap using the resource editor, andupdate the IDR_MAINFRAME TOOLBAR array in ImageDWT.rc to addtoolbar buttons./For the child frame window:ChildFrm.h, ChildFrm.cppThese files define and implement the CChildFrame class, whichsupports the child windows in an MDI application./AppWizard creates one document type and one view:ImageDWTDoc.h, ImageDWTDoc.cpp - the documentThese files contain your CImageDWTDoc class. Edit these files toadd your special document data and to implement file saving and loading(via CImageDWTDoc:Serialize).ImageDWTView.h, ImageDWTView.cpp - the view of the documentThese files contain your CImageDWTView class.CImageDWTView objects are used to view CImageDWTDoc objects.resImageDWTDoc.icoThis is an icon file, which is used as the icon for MDI child windowsfor the CImageDWTDoc class. This icon is included by the mainresource file ImageDWT.rc./Other standard files:StdAfx.h, StdAfx.cppThese files are used to build a precompiled header (PCH) filenamed ImageDWT.pch and a precompiled types file named StdAfx.obj.Resource.hThis is the standard header file, which defines new resource IDs.Microsoft Visual C+ reads and updates this file./Other notes:AppWizard uses TODO: to indicate parts of the source code youshould add to or customize.If your application uses MFC in a shared DLL, and your application is in a language other than the operating systems current language, youwill need to copy the corresponding localized resources MFC42XXX.DLLfrom the Microsoft Visual C+ CD-ROM onto the system or system32 directory,and rename it to be MFCLOC.DLL. (XXX stands for the language abbreviation.For example, MFC42DEU.DLL contains resources translated to German.) If youdont do this, some of the UI elements of your application will remain in thelanguage of the operating system./nts定义新CDibNew对象/ 暂时分配内存,以保存新图像CDib* pDibNew;pDibNew = new CDib;/ 如果分配内存失败,则推出if(!cdib.CopyDIB(pDoc-m_pDibSource,pDibNew)/ 释放已分配内存pDibNew-Empty();return;nts 1 论文题目 : 图像小波变换实现及 EZW 编码 理论 研究 专业 班级 : 学 号: 学 生: 签名: 指导教师: 签名: 摘 要 21 世纪,人类已进入信息化时代,其中图像信息是人类获得外界信息的主要来源,因此对图像的处理变得更为重要。而小波变换 以其良好的空间 频域局部特性,能对图像进行有效的处理。 本文研究的是小波变换在数字图像处理中的应用,文中介绍了数字图像处理的基本概念和小波变换的基本理论。基于图像小 波理论,对图像小波变换的实现技术 Mallat 算法进行了分析,并根据 Mallat 算法应用 VC+编程实现了图像小波变换。 Mallat 算法是将计算小波系数与信号处理中滤波器相结合,构成塔式分解算法,大大简化了小波系数的计算。嵌入式小波零树系数编码( EZW)是将小波变换的各子带系数表示为零树结构。 EZW 是一种简单而有效的图像编码算法。使用这种算法,编码者可在任一点结束编码,所以允许精确达到一个目标比率,而这时仍能产生同样的图像 。 【 关键词 】 图像处理、小波变换、压缩编码、 EZW 【 论文类型 】 软件设 计与理论研究 nts 2 Title: The Realization of Image Wavelet Transformation and The Coding Theory Research of EZW Major: Electronic information of science and technology Name: Signature: Name: Signature: ABSTRACT In the 21st, man being steps into an era of information. In which image information become the main origin of obtain information from outside. So processing image information become more important. Wavelet transform has wonderful space and frequency, so it can deal with the image effectively. The main topic article discuss is wavelet transform the application of image processing. In the article introduces the basic conception of data image processing and the basic theory of wavelet transform. Based on the image wavelet transform theory, the realize of the image wavelet transform technologyanalysis on Mallat algorithm, and basis on Mallat algorithm that use the software of VC+ realize of the image wavelet transform. Mallat algorithm is using the wavelet coefficients and the filter of signal processing, so it greatly simplified the computing of wavelet coefficients algorithm. EZW code is the structure which is a simple and effective image coding algorithm with which an encoder can terminate the encoding at any point ther eby allowing a target rate or distortion metric to be met exactly. 【 Key words】 image process, wavelet transform, image compression, EZW 【 Type of Thesis】 software design and theory research nts 3 前 言 现在人类已经进入信息化时代,而人类从自然界获取信息中,其中图像信息是人类获得外界信息的主要来源,因为大约有 70 的信息是通过人眼获得的,而人眼获得的都是图像信息。在近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中图像信息变得越来越重要了。获得图像信息非常重要,但更重要的是将图像信息进行处理,在大量复杂的图像中,找出我们所需要的信息。因此图像信息处理在某种意义上讲,比获得图像更为重要,尤其是在当今科学技术迅速发展的时代,对图像信息处理提出了更高的要求,以便更加迅速、准确、可靠地获得有用的信息。而小波变换则能对图像进行很好的处理。 小波分析是传统傅里叶分析发展史上的里程碑,它已经广泛应用于图像处理、图像编码 、计算机视觉、模式识别、语音识别、语音编码、地震信号处理和量子场理论等科技领域中。由于小波变换在时域和频域同时具有良好的局部特性,并且具有描述非平稳图像信号的能力和适应人眼视觉特性的良好性能,因此小波变换非常适合于图像信号处理,从而成为现代图像编码领域研究的热点之一,并获得了广泛的应用,其中与此相关的研究已取得了很大地进展。小波分析是目前国际上公认的信号信息获取与处理领域的高新技术,是多学科关注的热点,是信号处理的前沿课题。 随着多媒体技术和网络的发展,原有的图像压缩标准 JPEG 在低比特率的情况下,重构图像 存在严重的方块效应,不能很好的适应网络传输图像的需要,因此它的应用范围有很大局限性,无法满足许多新的应用需要。随着小波变换图像压缩算法的理论研究和应用技术日臻成熟,为新压缩标准的制定提供了解决方案。因此, JPEG 小组于 1997 年开始着手制定新的静止图像压缩标准 JPEG2000,它正是考虑了小波变换的良好特性,采用了小波变换来代替传统 JPEG 标准的余弦变换,以适用数字图象在质量、尺寸、应用上的扩展而对图像压缩提出更高的要求。 1992 年 Shapiro 提出了嵌入式小波零树编码 (EZW)方法。 嵌入零树小波算法 ( EZW)是一个简单,而且效率显著的图像压缩算法。这种算法得到比特流中的比特是按其重要性排序的,完全服从嵌入编码。嵌入式编码通过一串二进制来判断和区分一个图像的。使用嵌入式编码算法,编码者能够在任意点结束编码,所以允许精确达到一个目标比率或目标失真,而这时仍能确切地产生同样的图像。同样,对给定的比特流,解码者也可在任意点结束解nts 4 码,且仍能确切地产生和转换时同样的图像。 小波分析具有很强的数学背景,因此学好和应用好小波有一定的难度。本文研究的则是小波变换在数字图像处理中的应用,文中介绍了数字图像处理的基本概念 和小波变换的基本理论及其在图像处理中的应用技术 Mallat算法,并应用 Mallat 算法来实现图像小波变换,以及对小波变换后的图像进行嵌入式小波零树系数编码的理论研究。本文在最后对应用 Visual C+编程实现其变换进行分析和总结。 nts 5 目 录 第 1 章 数字图像处理基本概念 - 1 1.1 数字图像处理及其特点 - 1 1.1.1 数字图像与数字图像处理 - 1 1.1.2 数字图像处理的特点 - 1 1.2 数字图像处理的主要内容及应用 - 2 1.2.1 数字图像处理的主要内容 - 2 1.2.2 数字图像处理的应用 - 3 第 2 章 图像小波变换 - 4 2.1 小波变换的基本理论 - 4 2.1.1 连续小波变换 - 4 2.1.2 离散 小波变换 - 6 2.1.3 小波变换的多分辨率分析 - 7 2.2 图像小波变换的实现技术 Mallat 算法 - 8 2.2.1 一维信号的 Mallat 算法 - 8 2.2.2 二维信号的 Mallat 算法 - 10 2.3 小波变换在图像变换中的应用 - 11 2.3.1 图像小波变换的分解 - 11 2.3.2 图像小波变换的重构 - 13 第 3 章 小波图像压缩编码 EZW 编码 - 14 3.1 小波图像压缩及其编码原理 - 14 3.1.1 小波变换在图像压缩中的优越性 - 14 3.1.2 小波图像压缩编码的基本原理 - 15 3.2 嵌入式小波零树图像编码 (EZW)理论 - 16 3.2.1 小波变换与嵌入式编码 - 16 3.2.2 小波系数零树编码 - 17 3.2.3 逐次逼近量化 - 19 3.3 EZW 编码算法 - 20 3.3.1 EZW 算法思想 - 20 nts 6 3.3.2 EZW 编码实例 - 21 第 4 章 程序分析 - 24 4.1 程序分析 - 24 4.1.1 边界延拓方法 - 24 4.1.2 小波正变换 - 25 4.1.3 小波逆变换 - 28 4.2 图像小波变换结果及其分析 - 32 第 5 章 结 论 - 34 致 谢 - 错误 !未定义书签。 参考文献 - 35 英文原文 - 37 英文译文 - 50 nts 1 第 1 章 数字图像处理基本概念 21 世纪,人类已经进入信息化时代,而人类从自然界获取信息中,其中图像信息是人类获得外界信息的主要来源,因为大约有 70的信息是通过人眼获得的,而人眼获得的都是图像信息。在近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中图像信息变得越来越 重要了。获得图像信息非常重要,但更重要的是将图像信息进行处理,在大量复杂的图像中,找出我们所需要的信息。因此图像信息处理在某种意义上讲,比获得图像更为重要,尤其是在当今科学技术迅速发展的时代,对图像信息处理提出了更高的要求,以便更加迅速、准确、可靠地获得有用的信息。 1.1 数字图像处理及其特点 1.1.1 数字图像与数字图像处理 1、 数字图像 图像就是对客观存在的物体的一种相似性的生动模仿。而数字图像则是用计算机进行图像处理的前提是图像必须以数字的格式存储的图像。 2、 数字图像处理 所谓数字图像处理, 就是指用数字计算机及其他有关的数字技术,对图像施加某种运算和处理,从而达到某种预想的目的。例如,利用计算机对图像进行去除噪声、增强、复原、提取特征等的理论、方法和技术则都是数字图像处理。在日常生活中,图像处理已经得到广泛应用。故数字图像处理具有重要意义。 1.1.2 数字图像处理的特点 数字图像处理是利用计算机的计算,实现与光学系统模拟处理相同效果的过程。数字图像处理具有以下特点: nts 2 1) 处理精度高,再现性好。利用计算机进行图像处理,其实质 是对图像数据进行各种运算。 2) 易于控制处理效果。在图像处理程序 中,可以任意设定或变动各种参数,能有效控制处理过程,达到预期处理效果。这一点在改善图像质量的处理中表现更为突出。 3) 处理的多样性。由于图像处理是通过运行程序进行的,因此,设计不同的图像处理程序,可以实现各种不同的处理目的。 4) 图像数据量庞大。图像中包含有丰富的信息,可以通过图像处理技术获取图像中包含的有用信息,但是,数字图像的数据量巨大。一幅数字图像是由图像矩阵中的像素组成的,通常每个像素用红、绿、蓝三种颜色表示,每种颜色用 8bit 表示灰度级。则一幅 1024 1024 不经压缩的真彩体图像,数据量达 3MB(即 1024 1024 8bit 3=24Mb)。如此庞大的数据量给存储、传输和处理都带来巨大的困难。 5) 处理费时。由于图像数据量大,因此处理比较费时。 6) 图像处理技术综合性强。数字图像处理涉及的技术领域相当广泛,如通信技术、计算机技术、电子技术、电视技术等,当然,数学、物理学等领域更是数字图像处理的基础。 1.2 数 字图像处理的主要内容及应用 1.2.1 数字图像处理的主要内容 不管图像处理是何目的,都需要用计算机图像处理系统对图像数据进行输入、加工和输出,因此数字图像处理研究的内容主要有以下五个过程。 1、 图像变换 一般指利用正交变换(诸如博立叶变换、余弦变换、沃尔什变换、小波变换等等)的性质和特点,将图像转换到变换域中进行处理,如由时间域或空间域的图像转换到频率域的变换处理以改善图像的质量,同时还因为大多数变换都有快速实现的方法,从而大大提高了处理运算的速度。该部分主要研究备种变换模型和处理方法。 2、 图 像增强 nts 3 指利用备种数学方法和变换手段提高图像中的对象与非对象的对比度与图像清晰度,对象指所需研究的目标,非对象指对象以外的背景。从而突出入或其它接收系统所感兴趣的部分,例如若强化图像高频分量,则可使图像中目标轮廓清晰、细节明显等等。该部分主要研究各种增强模型和处理方法。 3、 图像复原 在景物咸像过程中,由子目标的高速运动、介质散射、系统畸变、噪声千扰等因素,致使最后形成的图像存在种种恶化。把恶化了的图像恢复到能真实反映原景物图像的处理,称为图像复原。该部分主要研究各种校正模型和处理方法。 4、 图像压缩编码 把数字化的图像数据按一定规则进行排列或运算的过程,称为图像编码。利用图像本身的内在特性,通过某种特殊的编码方式,达到减少原图像数据时空占用量的处理叫做图像压缩编码。它的目的就是压缩数据量。该部分是要研究各种高效压缩编码方法。 5、 图像分析基础 图像处理的另一个重要分支是图像分析,它主要研究图像特征、图像分割、图像描述以及一些图像分析方法。另一类关于特征提取、分类和识别等。 1.2.2 数字图像处理的应用 正像任何一门学科的产生一样,数字图像处理这门学科的形成也是和社会生产力 发展的需要分不开的。早期图像处理是由于通讯方面的要求而发展起来的;其后,则是由于宇宙探索的要求,使图像处理技术发展更为迅速,且突破了通讯和宇宙探索领域;而今天,它已经广泛地应用到科学研究、工农业生产、军事技术等许多领域,进一步推动社会生产力的发展。它的一些主要应用可归纳如下: 通讯技术 图像传真,电视电话,卫星通讯,数字电视; 遥感技术 农林资源调查,作物长势监视,自然灾害监测等等; 生物医学 X 射线、超声、显微图片分析,断层及核磁共振分析; 计算机科学 文学、图像输入的研究,多媒体计算机与智能计算机研究; 军事技术 航空及卫星侦察照片的判读,导弹制导,军事仿真等。 nts 4 第 2 章 图像小波变换 傅立叶变换从倡导到至今已经快两个世纪( 1807 年由 J.Fourier 提出),它是分析信号频率分量的,而 小波分析是傅立叶分析思想方法的发展与延拓。 小波变换的出现使得傅立叶分析中遇到的问题应刃而解。 它不仅为纯数学的研究提供了有力的工具,而且为图像处理理论的发展树立了里程碑。现在,它已在科技信息产业领域取得了令人注目的成就。 2.1 小波变换的基本理论 传统的信号分析是建立在傅立叶变换的基础之上的,在众多科学领域, 特别 是在信号处理、图像处理、量子物理等方面,傅立叶变换是重要的应用工具之一。 小波分析是傅立叶分析思想方法的发展与延拓。它既继承和发展了短时傅立叶变换的局部化思想,同时又克服了窗口大小不随频率变化的缺点,是进行信号时频分析,处理时变非稳态信号的比较理想的工具 。 以下是对小波变换的定义。 2.1.1 连续小波变换 若记基本小波函数为 )(xh ,伸缩和平移因子分别为 a 和 b,则小波是一个满足条件 R xh 0)(的函数 h 通过平移和伸缩而产生的一个函数簇 hba,: hba,= )(2/1a bxha a,b R ,a 0 (2-1-1) 通常称 h 为基本小波。令 L )(2 R 为可测的、平方可积函数 xf 的矢量空间, R 为实数集,对于任意的 )()( 2 RLxf 的连续小波变换给出如下定义: Wba,(x)= dxa bxhxfadxxfxh ba )()()()( 2/1, (2-1-2) nts 5 写成内集形式,即有 : Wba,(x)= (2-1-3) 它对应于 )()( 2 RLxf 在函数簇bah,(x)上的分解,这一分解必须满足下列可容性条件: dHWh 2)( 或 0)( dxxh(2-1-4) 其中 )(H 是 )(xh 的傅立叶变换,这样的函数 )(xh 称为解析小波。由式 2-1-4可知,函数 )(xh 可以描述为一带通滤波器的脉冲响应,因此小波变换式 2-1-2和 2-1-3 可以描述为函数 )()( 2 RLxf 通过一带通滤波函数的滤波输出,且具有频率放大作用(放大系数为 a)。可以证明:如果 h(x)满足式 2-1-4,则由 )(, xW ba可以恢复出 )(xf ,即此小波变换的逆变换存在,且有如下定义: dadbxhxWWxf babah )()(1)(,(2-1-5) 尽管 变换 窗的面积大小固定,但形状各异。对于尺寸参数 a 较大,即中心频率a0 小,则窗变宽,分辨率在时域或空间域增加,在频域减少 ;反之,则窗变窄,分辨率在时域或空间域减少,在频域增加。这相当于参数 a 的变化不仅改变连续小波的频谱结构,而且也改变其窗口的大小与形状,如图2-1 所示。为了比较分析,如图 2-2 给出了窗口傅立叶变换的基函数和时间 -频率图。 nts 6 图 2-1 小波变换的时间 -频率窗 图 2-2 傅立叶变换的时间 -频率窗 由图可知,傅立叶不同小波变换的是,此时的分析窗的形状和大小与频率无关且保持不变,所以分析的分辨率在整个时间 -频率平面上不变。 2.1.2 离散小波变换 由式 2-1-2可通过对其伸缩度因子 a和平移标度因子 b的取样而离散化。如果对 a 和 b 按如下规定律取样: mm anbbaa 000 , 其中 200 ,1 znmRba 、,则由式 2-1-1 有: )()(0202/0, nbxahaxh mnm 这样离散小波变换可定义为: 2, ),(,)(),()()( znmxhxfdxxhxfDW nmnmnm(2-1-6) 因此,离散小波变换式 2-1-6 也是一种时频分析,它从集中在某个区间上的基本函数开始,以规定步长向左或向右移动基本波形,并标度因子 0a 来扩张或压缩以构造其函数系。一系列小波由此而生,这就是“小波”一词的由来。这里 m 和 n 分别称为频率范围指数和时间步长变化指数。由于nmh,正比于 ma0 ,故高频时(对应于小的 m 值)nmh,高度集中,反之亦然;步长的变化则与 n 成正比。 nts 7 为从离散小波变换式 2-1-6 重构函数信号 )(xf ,算子nmDW,: )()( 222 zlRL 必须是一有界可逆算子,即对于某个 A0,BT X0 POS:正重要系数 XT 所有子孙系数小于 T ZTR :零数根 至少有一子孙系数大于 T IZ:孤立零点 nts 21 3.3.2 EZW 编码 实 例 以图 3-6 所示 3 层小波分解的 8x8 系数矩阵 为例 ,来说明编码过程。由于最大系数是 63,可选0T=32,表 3.2 给出了第 0 步编码处理过程,下面是对表 3.2 的注释。 ( 1)系数 63 大于门限 32,使用符号 POS 代替,它表示 32, 64的中间值 48。 ( 2)系数 31 关于门限 32 是不重要的,而子频带 1LH 中有它的子女 47,所以这是一个孤立的零。 ( 3)系数 23 小于门限 32,并且在子频带中的对应系数 3, -12, -14,8 是不重要的,且在 1LL 中的相应系数也全是不重要的,所以用零树符号 ZTR记这个系数。 ( 4) 10 小于 32,它的子女都小于 32,所以是零树, 10 是零树根。 图 3-6 8x8 小波变换系数图 ( 5) 14 关于 32 是不重要的,它的孩子是 -1, 47, -3, 2。由于 47 大于 32,所以用符号 IZ 标记。 ( 6)这儿用符号 Z(零),这只在 1HL , 1LH , 1HH 中标记,它写为 IZ或 ZTR 都是一样的,因为它没有孩子。 ( 7) 47 关于 32 是重要的,用 POS 标记,代表的值是 48。 为了使 POS 与 NEG 的标记更好一些,对这几个重要系数还可用 POS0,POS1, NGE0, NGE1 标记,如表 3.3。 在第 0 步以后,数据剩余图如图 3-7 所示。第 1 步以门限 1T =16 编码如表 3.4 所示。 nts 22 上述例子只是对小波系数零树压缩方法过程的解释,真正编码时,还要使用一些技巧,以达到提高压缩比的目的。 表 3.2 门限 T=32 时编码过程 表 3.3 重要系数实用标记 表 3.4 门限 T=16 时编码过程 图 3-7 第 0 步后数据剩余值 由此例题可知, EZW 算法是一种简单 ,高效的图像编码算法 ,它不要求图像的先验知识 ,也不要求大的内存容量 ,并且采用了嵌入的方式 ,压缩效果也比较理想 ,而且允许用户自己的需要设定压编比 ,是一个具有很大潜力的编码算法。 EZW 具有以上的优点是因为采用了四个新技术 :离散小波变换 ,零树编码 ,渐进量化和自适应算术编码。离散小波变换有效地消除了原始图像像素间的相关性 ,使大多数系数可以作为按指数增长的零树的一部分被有效地编码 ;零树编码通过跨尺度预测不重要系数 ,获得了巨大的编码增益 ,远远超nts 23 过了针对重要图的一阶熵编码 ;渐进量化通过对多级重要图采用零树 编码 ,可使编码和解码在不同的位率下随时停止 ;自适应算术编码进一步消除了比特流自身的冗余。 虽然 EZW 算法有以上优点,但它还存在的问题是 : 1、 由于编码时形成多棵零树 ,因而要多次扫描图像造成效率很低 ,耗时长,而且每一棵树必须在前一棵树形成之后才能形成 ,所以也很难用并行算法优化。 2、 对所有的频域进行等同重要度的编码 ,不能充分利用小波变换的特点。 3、 在一棵零树中包含的元素越多 ,则越有利于数据压缩 ,在 EZW 算法中存在这样的树间冗余。 4、 在同一子带中相邻元素间有一定的相关性 ,尤其在高频子带存在大量的低值 元素 ,而 EZW 算法并没有充分利用这种相关性。 nts 24 第 4 章 程序分析 4.1 程序分析 4.1.1 边界延拓方法 设输入信号为 s= 110 , nsss ,则常用的边界延拓方法包括:零延拓、周期延拓、周期对称延拓、光滑常数延拓、平滑延拓。 1)零延拓 在原始信号两端补零。即若 kn-1,则 ks =0。零延拓后的信号变为 ,0,0,0, 1210 nssss 2)周期延拓 这是常用的一种方法 ,它将信号看成一个周期信号,即 knk ss 。周期延拓后的信号变为 , 210121012101 ssssssssssss nnn 3)周期对称延拓 这种方法等效于对原信号在边界上做对称折叠。一般地, (1)当与之做卷积的滤波器的长度为奇数时,周期延拓后的信号为 , 101212101212 ssssssssssss nnnn (2)当与之做卷积的滤波器的长度为偶数时,周期延拓后的信号为 , 1001211210012112 ssssssssssssssss nnnnnn 4)光滑常数延拓 这种方法在原信号两端添加常数 。光滑常数延拓后的信号为 , 111121000 nnnn sssssssss 5)平滑延拓 在原信号两端用线性外插法补充采样值。即沿着信号两端的一阶导数方向增加采样。 nts 25 4.1.2 小波正变换 在前面已介绍了小波变换的原理。下面给出 用 VC+编程实现 小波正变换的程序 代码 。 首先对二维小波变换进行分析。 DWT_2D()函数的功能是对图像进行分解,形成子带图像以便于压缩。其实现的过程如图 4-1 所示 。 图 4-1 图像分解流程图 一、 一维小波变换 代码 void CDWT:DWT_1D (double *input, double *output, int dataLong, int nsteps, int extendmode) int LowSize = dataLong, HighSize; int currentIndex = 0; double *data2; / data0用于存放填充边界后的输入数据 / data1用于存放填充边界后的输出数据 data0 = new double 2*npad + dataLong; data1 = new double 2*npad + dataLong; nts 26 /将输入信号复值到 data0 copy(input, datacurrentIndex+npad, dataLong); while (nsteps-) if (LowSize = 2 & ExtendMode = 1) MessageBox(NULL,请增加信号长度 !,error, MB_OKCANCEL|MB_ICONERROR); return; /调用 单 步小波变换 DWTStep_1D (datacurrentIndex, data1 -currentIndex, LowSize, extendmode); / 复制数据给输出信号 copy (data1-currentIndex + npad, output, LowSize); / Now convolve low-pass portion again HighSize = LowSize/2; LowSize = (LowSize+1)/2; currentIndex = 1 - currentIndex; /释放空间 delete data1; delete data0; 二、 小波二维变换 代码 void CDWT:DWT_2D (double *input, double *output, int rowLong, int colLong, int nsteps, int extendmode) int i; int rLowSize = rowLong, rHighSize; int cLowSize = colLong, cHighSize; / temp_in 用于存放填充边界后的输入数据 nts 27 / temp_out 用于存放填充边界后的输出数据 double *temp_in = new double 2*npad + rowLong*colLong; double *temp_out= new double 2*npad + rowLong*colLong; copy(input, temp_in+npad, rowLong * colLong); while (nsteps-) if (rLowSize = 2 | cLowSize = 2) & extendmode = 1) MessageBox(NULL,请增加信号长度 !,error, MB_OKCANCEL|MB_ICONERROR); return; / 行分解 for (i = 0; i cLowSize; i+) / 调用一维 小波分解 DWT_1D(temp_in+i*rowLong,temp_out+i*rowLong, rLowSize,1, extendmode); /提取图像列元素 for (i = 0; i rLowSize; i+) copy(temp_out+i, rowLong, temp_in+i*colLong,cLowSize); / 列分解 for (i = 0; i rLowSize; i+) / 调用一维 小波分解 DWT_1D(temp_in+i*colLong,temp_out+i*colLong, cLowSize,1, extendmode); for (i = 0; i cLowSize; i+) copy(temp_out+i,colLong, temp_in+i*rowLong,rLowSize); /将处理好的图像输出 copy(temp_in+npad,output,rowLong*colLong); nts 28 / Now convolve low-pass portion again rHighSize = rLowSize/2; rLowSize = (rLowSize+1)/2; cHighSize = cLowSize/2; cLowSize = (cLowSize+1)/2; delete temp_out; delete temp_in; 4.1.3 小波逆变换 下面给出用 VC+编程实现小波逆变换的程序代码 。 首 先 对二维小波逆变换 函数 IDWT_2D() 进行分析 ,它是 DWT_2D()的一个反变换,其主要作用 是将分解的图像合成来恢复出原图像的基本信息。其实现过程如图4-2 所示。 nts 29 图 4-2 图像合成的流程图 一、 一维小波反变换 代码 void CDWT:IDWT_1D (double *input, double *output, int dataLong, int nsteps, int extendmode) int i; int currentIndex = 0; double *data2; / data0用于存放填充边界后的输入数据 / data1用于存放填充边界后的输出数据 data0 = new double 2*npad + dataLong; data1 = new double 2*npad + dataLong; int *LowSize = new int nsteps; int *HighSize = new int nsteps; LowSize0 = (dataLong+1)/2; HighSize0 = dataLong/2; for (i = 1; i nsteps; i+) LowSizei = (LowSizei-1+1)/2; HighSizei = LowSizei-1/2; / 获得最低层低频数据部分 copy(input, datacurrentIndex+npad, dataLong); copy(input, data1-currentIndex+npad, dataLong); while (nsteps-) / 单步小波反变换 IDWTStep_1D(datacurrentIndex, data1-currentIndex, LowSizensteps+HighSizensteps, extendmode); /进行下次变换 currentIndex = 1 - currentIndex; / 复制数据给输出信号 nts 30 copy (datacurrentIndex+npad, output, dataLong); delete HighSize; delete LowSize; delete data 1; delete data 0; 二、 小波二维反变换 代码 void CDWT:IDWT_2D (double *input, double *output, int rowLong,int colLong, int nsteps, int extendmode) int i; / temp_in 用于存放填充边界后的输入数据 / temp_out 用于存放填充边界后的输出数据 double *temp_in = new double 2*npad + rowLong*colLong; double *temp_out = new double 2*npad + rowLong*colLong; /定义控制逆变换的变量 int *rLowSize = new int nsteps; int *rHighSize = new int nsteps; int *cLowSize = new int nsteps; int *cHighSize = new int nsteps; rLowSize0 = (rowLong+1)/2; rHighSize0 = rowLong/2; cLowSize0 = (colLong+1)/2; cHighSize0 = colLong/2; /对逆变换控制变量的处理,便于变换控制。 for (i = 1; i nsteps; i+) rLowSizei = (rLowSizei-1+1)/2; rHighSizei = rLowSizei-1/2; cLowSizei = (cLowSizei-1+1)/2; cHighSizei = cLowSizei-1/2; copy( input,temp_in+npad,rowLong*colLong); nts 31 while (nsteps-) for (i = 0; i rLowSizensteps+rHighSizensteps; i+) copy(temp_in+i,rowLong,temp_out+i*colLong, cLowSizensteps+cHighSizensteps); / 列合成 for (i = 0; i cLowSizensteps + cHighSizensteps; i+) / 调用一维 小波合成 IDWT_1D(temp_out+i*rowLong,temp_in+i*rowLong, rLowSizensteps + rHighSizensteps,1, extendmode); for (i = 0; i cLowSizensteps+cHighSizensteps; i+) copy(temp_in+i+npad,colLong,temp_out+i*rowLong, rLowSizensteps+rHighSizensteps); / 行合成 for (i = 0; i rLowSizensteps+rHighSizensteps ; i+) / 调用一维 小波合成 IDWT_1D(temp_out+i*colLong,temp_in+i*colLong, cLowSizensteps+cHighSizensteps,1, extendmode); copy(temp_in+npad,output,rowLong*colLong); delete rLowSize; delete rHighSize; delete cLowSize; delete cHighSize; delete temp_out; delete temp_in; nts 32 4.2 图像小波变换结果及其分析 通过使用个不同的滤波器对一幅名为“ LADY”灰度图像进行小波 变换(变换级数为 1 级) ,其结果是不同的 。下面 仅了选两个滤波器对 原图 进行分解和重构,并对其效果进行比较。 先利用 haar 小波 来对图像进行变换,结果如图 4-3 所示 。 ( a)原图 ( b) 一级小波变换 图 (c)小波逆变换 图 图 4-3 haar 小波 对图像分解和重构 由图 4-3 可知,利用 haar 小波 对图像进行分解后 再重构,其结果是图像 可以 无失真的恢复。 且其分解出的高频效果比较理想, 如 其轮廓 较清晰。 下面是利用 sym2 小波 进行变换,其结果如图 4-4 所示。 ( a)原图 ( b) 一级小波变换 图 (c)小波逆变换 图 图 4-4 sym2 小波 对图像分解和重构 由图 4-4 可知,利用 sym2 小波 对图像进行分解后再重构,其结果是图像 恢复 的总体效果较好 ,不过有小部分失真 。且其分解出的高频 部分 大部分是 光滑 的,无清晰轮廓 。 综上所 述, 出现不同效果的原因在于: 1、 图像小波变换的效果与 小波基 的选择有关,对于选取不同的 小波基 ,nts 33 图像分解和重构的效果 不同。 这是因为对不同的 小波基 ,其 长度和性质不同 ,因此而产生不同的边缘效果,故分解和重
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。