小波变换处理图像((课程设计)).doc_第1页
小波变换处理图像((课程设计)).doc_第2页
小波变换处理图像((课程设计)).doc_第3页
小波变换处理图像((课程设计)).doc_第4页
小波变换处理图像((课程设计)).doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理课程设计报告题 目: 小波变换处理图像 专 业: 信息与计算科学 学 号: 组 长: 指导教师: 成 绩: 二一 年 六 月二十六日一、 课程设计目的小波分析是当前应用数学和工程学科中一个迅速发展的新领域,经过近10年的探索研究,重要的数学形式化体系已经建立,理论基础更加扎实。与Fourier变换相比,小波变换是空间(时间)和频率的局部变换,因而能有效地从信号中提取信息。通过伸缩和平移等运算功能可对函数或信号进行多尺度的细化分析,解决了Fourier变换不能解决的许多困难问题。小波变换联系了应用数学、物理学、计算机科学、信号与信息处理、图像处理、地震勘探等多个学科。小波分析是一个新的数学分支,它是泛函分析、Fourier分析、样调分析、数值分析的完美结晶;小波分析是时间尺度分析和多分辨分析的一种新技术,它在信号分析、语音合成、图像识别、计算机视觉、数据压缩、地震勘探、大气与海洋波分析等方面的研究都取得了有科学意义和应用价值的成果。二、课程设计要求1、对知识点的掌握要求:利用小波变换的基本原理在MATLAB环境下编写程序对静态图像进行分解并压缩,并观察分析其处理效果。2、分组情况:组长: 组员: 分工情况:设计全过程的监督及协助和整个源程序代码的整理。:负责小波变换的分解:负责小波变化的重构算法:负责编写MATLAB程序:负责图像的压缩3、课程设计内容对知识点的掌握要求:利用小波变换的基本原理在MATLAB环境下编写程序对静态图像进行分解并压缩,并观察分析其处理效果MATLAB是矩阵实验室(Matrix Laboratory)的简称,它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、 实现算法、创建用户界面、连接其它编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本设计利用MATLAB工具箱中的Wavele Toolbox小波工具箱对图像进行小波变换。三、课程设计实现步骤3.1 小波变换的分解和重构算法3.1.1 小波变换的分解算法小波是函数空间(R)中满足下述条件的一个函数或者信号(x)这里,=R-0表示非零实数全体。对于任意的函数或者信号,其小波变换定义为因此,对任意的函数,它的小波变换时一个二元函数。另所谓多分辨分析是指设;是(R)上的一列闭子空间,其中的一函数,如果它们满足如下五个条件,即(1)单调性:,;(2)唯一性:;(3)稠密性:(R);(4)伸缩性:,;(5)Riesz基存在性:存在,使得;构成的Riesz基。称为尺度函数。那么称;,是(R)上的一个多分辨分析。若定义函数,则由多分辨分析的定义,容易得到一个重要结果,即函数族;是空间的标准正交基。关于多分辨分析,在这里以一个三层的分解进行说明,其小波分解树如图2.1所示(A表示低频,D表示高频)。图2.1 小波分解法从图中可以明显看出,多分辨分析只是对低频部分进行进一步分解,而高频部分则不予考虑。分解具有关系,另外强调一点,这里只是以一个层分解进行说明,如果要进行进一步分解,则可以把低频部分分解成低频部分和高频部分,以下再分解,依次类推。在理解多分辨分析时,必须牢牢把握一点,即分解的最终目的是力求构造一个在频率上高度逼近空间的正交小波基,这些频率分辨率不同的正交小波基相当于带宽各异的带通滤波器。从图2.1可以看出,多分辨分析只对低频空间进行进一步的分解,使频率的分辨率变得越来越高。3.1.2 小波变换的重构算法设、(i=1,2,3)是由两个一元两尺度序列得到的二元尺度序列,即=,=,=,=。则有重构算法为=小波重构的数据传递示意图如图2.2所示图2.2 小波重构数据流示意图3.2 小波变换在图像压缩中的应用二维离散小波变换后的系数分布构成了信号的二维正交小波分解系数(如图2.3所示),图2.3 二维正交小波分解系数它们每一个都可被看做一幅图像,给出了垂直方向的高频分量的小波分解系数,给出了水平方向的高频分量的小波分解系数,给出了对角方向高频分量的小波分解系数,给出了的低频分量的小波分解系数。由此可见,若用,分别表示,经21亚抽样后的变换系数(简称为子图像),则任一图像都可以分解为j=-J,-1之间的3J+1个离散子图像:,其中是原图像的一个近似,(i=1,2,3;j=-J,-1)则是图像在不同方向、不同分辨率下的细节;如果原图像有N2个像素,则子图像,分别有个像素,因而分解后总的像素数为可见,分解后总的像素数不变。二维数字信号也即数字图像,对它的处理时基于图像的数字化来实现的。图像的书画结果就是一个巨大数字矩阵,图像处理就在这个矩阵上完成。所以,可将二维数字信号看做,即=并采用与一维情况类似的mallat算法。由于两次一维小波变换来实现一次二维小波变换,所以先对该矩阵的行进行小波变换,再对列进行小波变换。从信号滤波的角度实现二维小波变换的框图分别如图3.4所示。图2.4 二维小波变化的框图3.3MATLAB程序下面的实例是基于二维小波分析对图像进行压缩。一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(即高频)子图像上大部分点都接近于0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。clc;clear all;a=imread(1.bmp);X=rgb2gray(a);subplot(221);image(X);colormap(gray(256);title(原始图像);axis square;c,s=wavedec2(X,2,bior3.7);ca1=appcoef2(c,s,bior3.7,1);ch1=detcoef2(h,c,s,1);cv1=detcoef2(v,c,s,1);cd1=detcoef2(d,c,s,1);a1=wrcoef2(a,c,s,bior3.7,1);h1=wrcoef2(h,c,s,bior3.7,1);v1=wrcoef2(v,c,s,bior3.7,1);d1=wrcoef2(d,c,s,bior3.7,1);c1=a1,h1;v1,d1;subplot(222);image(c1);axis squaretitle(分解后低频和高频信息);ca1=appcoef2(c,s,bior3.7,1);ca1=wcodemat(ca1,440,mat,0);ca1=0.5*ca1;subplot(223);image(ca1);colormap(gray(256);title(第一次压缩图像);axis squareca2=appcoef2(c,s,bior3.7,2);ca2=wcodemat(ca2,440,mat,0);ca2=0.25*ca2;subplot(224);image(ca2);colormap(gray(256);axis square;title(第二次压缩图像);ifndef _BMPHEADER_H#define _BMPHEADER_H#pragma pack(1)typedef struct _BmpHeaderchar Identi2; /checkDWORD FileSize; DWORD Reserve1;DWORD DataOffset; /check DWORD HeaderSize; /checkDWORD Width; /checkDWORD Height; /checkWORD Planes;WORD BitsPerPix; /checkDWORD Compression; /checkDWORD DataSize;DWORD hResolution;DWORD vResolution;DWORD Colors; /checkDWORD ImportantColor; BmpHeader;/size if 54typedef struct _BmpBmpHeader Header;DWORD Palettes256;unsigned char Pix256256; Bmp;/size is 66614/the file store in disk will be 66616 size NdifWavelet.cpp : Defines the class behaviors for the application./#include stdafx.h#include Wavelet.h#include MainFrm.h#include WaveletDoc.h#include WaveletView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CWaveletAppBEGIN_MESSAGE_MAP(CWaveletApp, CWinApp)/AFX_MSG_MAP(CWaveletApp)ON_COMMAND(ID_APP_ABOUT, OnAppAbout)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSG_MAP/ Standard file based document commandsON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)/ Standard print setup commandON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ CWaveletApp constructionCWaveletApp:CWaveletApp()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CWaveletApp objectCWaveletApp theApp;/ CWaveletApp initializationBOOL CWaveletApp:InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endif/ Change the registry key under which our settings are stored./ TODO: You should modify this string to be something appropriate/ such as the name of your company or organization.SetRegistryKey(_T(Local AppWizard-Generated Applications);LoadStdProfileSettings(); / Load standard INI file options (including MRU)/ Register the applications document templates. Document templates/ serve as the connection between documents, frame windows and views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CWaveletDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CWaveletView);AddDocTemplate(pDocTemplate);/ Parse command line for standard shell commands, DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo)return FALSE;/ The one and only window has been initialized, so show and update it.m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();return TRUE;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/ No message handlers/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ App command to run the dialogvoid CWaveletApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ CWaveletApp message handler四、结果及分析双线性内插法得到的放大图像。从图像的效果看出分辨率小的图像放大后得到的效果与原始图像相差很大。相比较而言,最近邻域法放大的图像平滑程度不如双线性法放大的,所以在实际应用中双线性内插法通常是首选。 从上面的图可以看出,在偏暗的图像中,直方图的组成成分集中在灰度级低的一侧,图像的对比度很低,为了使图像的对比度增加,采用了直方图均衡化,使图像所占的灰度登记得到扩展,对比度加强,使整个图像得到增强。数字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象素个数和灰度等级均为离散值,而且均衡化使灰度级并归。因此,均衡化后,其直方图并非完全均匀分布。从上图我们使用的是一副对比度较强的图像来做直方图均衡化,得到的均衡化后的图像效果并不好,这是因为对原来直方图就充满整个灰度级的图像再做均衡化使得部分灰度级变化后出现重叠的现象,使得得到的图像效果并不好。上图是对一副被椒盐噪声污染的图像分别使用3*3,5*5,7*7模板进行平滑滤波的到的,从图像的效果来看,使用7*7模板对噪声的平滑效果最好,但与此同时,原始图像的也被平滑了,所以在选择模板大小时要综合考虑对噪声的平滑度和对原始图像的平滑度。 这是对上面的图像进行中值滤波后的结果,从图像的效果来看中值滤波对处理脉冲噪声非常有效,这是因为中值滤波器是将邻域内的像素灰度的中值代替该像素的值。而椒盐噪声就是那些灰度为最大或最小的点,采用中值滤波能过有效的消除这些点,而且模糊程度明显比均匀滤波器要低 采用拉普拉斯滤波后的图像在叠加到原始图像中,就可以使图像中的各灰度值得到复原,而且通过拉普拉斯变换增强了图像中灰度突变处的对比度。最终的结果是使图像中的细节部分得到增强,并良好保留了图像的背景色调。 1原始 2高斯噪声 3 椒盐噪声 均为彩色图像 从上图来看,对被高斯噪声污染的图像进行频域滤波的效果不如被椒盐噪声污染的图像同样处理那样好,这是因为高斯噪声的频谱均匀的充满整个频域,低频(图像主要所在)处也有频谱,进行频域滤波后高频的噪声的确被滤除了,但是低频的噪声仍然存在,所以效果不怎么好。而椒盐噪声的频谱集中的高频部分,所以椒盐噪声效果还是可以的。频域滤波实现除噪的原理是原始图像的频谱集中在低频部分,在高频处图像的信噪比就比较低,显得图像效果不好,而进行了低通滤波后虽然牺牲了原始图像的边缘部分,但是滤除了高频的噪声,在低频的噪声和原始图像相比显得不那么明显,目的就达到了。原始图像RGBHSI彩色除噪原理 对彩色图像进行除噪的过程应该是先将I分量提取处理来,单独对I 分量进行除噪。如果直接对RGB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论