您现在正在浏览:首页 > 职教文章 > 职教论文 > 在MATLAB环境下基于小波变换的图像去噪

在MATLAB环境下基于小波变换的图像去噪

日期: 2010-3-6 10:55:30 浏览: 9 来源: 学海网收集整理 作者: 刘智

摘要:图像消噪是信号处理中的一个经典问题,传统的消噪方法多采用平均或线性方法进行,但是其消噪效果不好,随着小波理论的不断完善,它以自身良好的时频特性在图像消噪领域受到越来越多的关注,本文将以MATLAB 为平台介绍以小波变换去除图像噪声的基本方法,并且在MATLAB 中小波分析工具箱所提供的GUI 上分析和验证滤波效果。
   关键词:MATLAB,小波变换,图像去噪,GUI
   中图分类号:TP391.4
   1.引言
   近年来,小波分析技术在图像处理应用上取得了一些新的进展。小波分析是泛函分析、傅里叶分析、样条理论、调和分析以及数值分析等多个学科的相互交叉、相互融合的结晶。小波变换属于时频分析的一种,它是一种多尺度信号分析方法,是分析非平稳信号的强有力工具【1】。它克服了傅里叶变换固定分辨率的缺点,既能分析信号的整个轮廓,又可以进行信号细节的分析。
   一般说来,小波变换在图像处理中的应用主要包括以下几个方面:图像分析、图像去噪、图像压缩、图像融合等。
   MATLAB 是美国MathWorks 公司出品的商业数学软件[3],用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和SIMULINK 两大部分。
   MATLAB 是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。
   它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。此外MATLAB 提供了丰富的数学函数库和种类繁多且功能强大的工具箱。本文将阐述如何使用MATLAB 的小波分析工具箱进行图像去噪处理的技术和方法。
   2. 小波变换
   2.1 基本原理在数学上,小波定义卫队给定函数局部化的新领域,小波可由一个定义在有限区域的函数来构造, 称为母小波,(mother wavelet)或者叫做基本小波【2】Ψ(x ) Ψ(x) 。一组小波基函数,{ ( )},可以通过缩放和平移基本小波来生成:
   (1)其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。当a = 2j 和b = ia 的情况下,一维小波基函数序列定义为:
   (2)其中,i 为平移参数, j 为缩放因子,函数f (x ) 以小波Ψ(x) 为基的连续小波变换定义为函数f (x )和(x )的内积:
   (3)与时域函数对应,在频域上则有:
   (4)可以看出,当a 减小时,时域宽度减小,而频域宽度增大,而且(x )的窗口中心向增a ,b Ψ ω大方向移动。这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。总体说来,小波变换具有更好的时频窗口特性。
   2.2 基于小波变换的图像分解与重构二维离散小波主要解决二维多分辨率分析问题,如一幅二维离散图像{c (m,n)},二小波变换可以将它分解为各层各个分辨率上的近似分量。j ,水平方向细节分量,垂直方向细节分量cA J cHj ,对角线方向细节分量,其二层小波图像分解过程如图1 所示:
   其二层小波图像重构过程正好与此相反如图2 所示,基于小波变换的图像处理,是通过对图像分解过程中所产生的近似分量与细节分量系数的调整,使重构图像满足特定条件,而实现图像处理。
   3. 编程实现
   图像消噪常用的图像去噪方法是小波阈值去噪法,它是一种实现简单而效果较好的去噪方法,阈值去噪方法的思想很简单,就是对小波分解后的各层稀疏模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出去噪后的图像。在阈值去噪中,阈值函数体现了对小波分解稀疏的不同处理策略以及不同的估计方法,常用的阈值函数有硬阈值和软阈值函数,硬阈值函数可以很好的保留图像边缘等局部特征,但图像会出现伪吉布斯效应,等视觉失真现象,而软阈值处理相对较平稳,但可能会出现边缘模糊等失真现象,为此人们又提出了半软阈值函数。小波阈值去噪方法处理阈值的选取,另一个关键因素是阈值的具体估计,如果阈值太小,去噪后的图像仍然存在噪声,相反如果阈值太大,重要图像特征又将被滤掉,引起偏差。从直观上讲,对给定的小波系数,噪声越大,阈值就越大。
   图像信号的小波去噪步骤与一维信号的去噪步骤完全相同,只使用二维小波分析工具代替了一维小波分析工具,如果用固定阈值形式,则选择的阈值用m 2 代替了一维信号中的n 。
   这三步是:1)二维信号的小波分解。选择一个小波和小波分解的层次N,然后计算信号S 到第N 层的分解。2)对高频系数进行阈值量化,对于从一到N 的每一层,选择一个阈值,并对这一层的高频系数进行软阈值化处理。3)二维小波的重构,根据小波分解的第N 层的低频系数和经过修改的从第一层到第N 层的高频系数,来计算二维信号的小波重构。下面就通过具体实例来说明利用小波分析进行图像去噪的问题。
   编写二维小波去噪程序,对给定图像进行去噪:
   clear; % 清理工作空间
   load wbarb; % 装载原始图像
   subplot(221); % 新建窗口
   image(X); % 显示图像
   colormap(map); % 设置色彩索引图
   title(’原始图像’); % 设置图像标题
   axis square; % 设置显示比例,生成含噪图像并图示
   init=2055615866; % 初始值
   randn(’seed’,init); % 随机值
   XX=X+8*randn(size(X)); % 添加随机噪声
   subplot(222); % 新建窗口
   image(XX); % 显示图像
   colormap(map); % 设置色彩索引图
   title(’含噪图像’); % 设置图像标题
   axis square; %用小波函数coif2 对图像XX 进行2 层分解
   [c,l]=wavedec2(XX,2,’coif2’); % 分解
   n=[1,2]; % 设置尺度向量
   p=[10.28,24.08]; % 设置阈值向量,对高频小波系数进行阈值处理
   %nc=wthcoef2(’h’,c,l,n,p,’s’);
   %nc=wthcoef2(’v’,c,l,n,p,’s’);
   nc=wthcoef2(’d’,c,l,n,p,’s’);
   X1=waverec2(nc,l,’coif2’); % 图像的二维小波重构
   subplot(223); % 新建窗口
   image(X1); % 显示图像
   colormap(map); %设置色彩索引图
   title(’第一次消噪后的图像’); % 设置图像标题
   axis square; % 设置显示比例,再次对高频小波系数进行阈值处理
   %mc=wthcoef2(’h’,nc,l,n,p,’s’);mc=wthcoef2(’v’,nc,l,n,p,’s’);
   %mc=wthcoef2(’d’,nc,l,n,p,’s’);
   X2=waverec2(mc,l,’coif2’); % 图像的二维小波重构
   subplot(224); % 新建窗口
   image(X2); % 显示图像
   colormap(map); % 设置色彩索引图
   title(’第二次消噪后的图像’); % 设置图像标题
   axis square; % 设置显示比例
   ………………
   ………………
   ………………
   5. 结束语本文就小波理论与MATLAB 语言的小波分析工具箱做了简单阐述,介绍了用小波函数编写程序去除图像噪声的基本步骤和原理,最后在图形用户界面GUI 上再次验证图像滤波的效果,使得去噪过程更加直观化。试验结果表明,小波变换在图像处理中具有理想的效果与很高的工程应用价值。
   参考文献
   [1]薛年喜.MATLAB 在数字信号处理中的应用[M].北京:清华大学出版社,2003.
   [2]秦襄培.MATLAB 图像处理与界面编程[M].北京.电子工业出版社,2009.
   [3]飞斯科技产品研发中心.MATLAB6.5 辅助小波分析与应用[M].北京:电子工业出版社,2003.
   [4]俞小红.姚敏.小波变换及在图像处理中小波系数分析[J].计算机应用.2001(2):50-54
   [5]林宏裔.孔亮.在MATLAB 环境语言中基于小波变换的图像处理[J].华北科技学院学报.2003(2):60-64
   Wavelet Transform In image De-noising using MATLAB
   LiuZhi
   Engineering & Research Center For Information Technology On Education , HuaZhong NormalUniversity,Wuhan,PRC,(430079)
   Abstract:Image de-noising is a classic problem in signal processing. the traditional denoising used the average or linearmethods, but ite effect isn’t ideal.With the constant improvement of wavelet theory and its good time-f requencycharacteristics in the field of image de-noising it has attracted more and more attention, this article will introducemethods of using wavelet transform as the basic methods to remove image noise on MATLAB, and verifyeffects of the analysis and filtering in the GUI provided by MATLAB wavelet analysis’s toolbox.
   Keywords : MATLAB, wavelet transform, image de-noising, GUI.

返回顶部