基于小波图像去噪的MATLAB实现

 基于小波图像去噪的MATLAB实现 一、 论文背景   数字图像处理(Digital Image ProcessingDIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。   然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一张图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。 二、 课题原理 1.小波基本原理  在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有  ()()限区域的函数来构造,称为母小波,(mother wavelet)或者叫做基本  YxYx  ()  {Yx}小波。一组小波基函数,,可以通过缩放和平移基本小波 来生成:   a,b    1x-b  ()                              1    Yx=Y()    a,b  a  a  其中,a为进行缩放的缩放参数,反映特定基函数的宽度,b为进行平移的  j平移参数,指定沿x轴平移的位置。当a=2b=ia的情况下,一维小波基函数序列定义为:   -j  ()    ()  -j  Yx=2Y2x-1                   2   2  i,j  ()  ()  Yx  其中,i为平移参数,j为缩放因子,函数fx以小波为基的连续小  ()  ()  Yx波变换定义为函数fx和的内积:   a,b

 +¥  1x-b  ()    ò            (3)  Wx=f,Y=f(x)Y()dx    a,ba,b  a  a  -¥  与时域函数对应,在频域上则有:  ()  w    -j  w                     (4)    Yx=aeY(a)  a,b  ()     可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且的  Yx  a,b窗口中心向|ω|增大方向移动。这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。总体说来,小波变换具有更好的时频窗口特性。 2. 图像去噪综述  所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。通常噪声是不可预测的随机信号。由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。  依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。设  ,,,f(xy)力为理想图像,n(xy)力为噪声,实际输入图像为为g(xy),则加性噪声可表示为:  ,,,,  g(xy)= f(xy)+ n(xy)             (5)   ,其中,n(xy)和图像光强大小无关。  ,,  图像去噪的目的就是从所得到的降质图像以g(xy)中尽可能地去除噪声n(x  ,y),从而还原理想图像f(xy)。图像去噪就是为了尽量减少图像的均方误差,提高图像的信噪比,从而尽可能多地保留图像的特征信息。  图像去噪分为时域去噪和频域去噪两种。传统图像去噪方法如维纳滤波、中值滤波等都属于时域去噪方法。而采用傅里叶变换去噪则属于频域去噪。这些方法去噪的依据是一致的,即噪声和有用信号在频域的不同分布。我们知道,有用信号主要分布于图像的低频区域,噪声主要分布在图像的高频区域,但图像的细节信息也分布在高频区域。这样在去除高频区域噪声的同时,难免使图像的一些细节也变得模糊,这就是图像去噪的一个两难问题。因此如何构造一种既能降低图像噪声,又能保留图像细节特征的去噪方法成为图像去噪研究的一个重大课题。 3. 小波阈值去噪法 3.1小波变换去噪的过程  小波去噪是小波变换较为成功的一类应用,其去噪的基本思路可用框图3-1

来概括,即带噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。    带噪小波分尺度逆小波恢复  图像 分解 去噪 变换 图像      图3-1小波去噪框图 因此,利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边缘信息。而传统的傅立叶变换去噪方法在去除噪声和边沿保持上存在着矛盾,原因是傅立叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可见,与傅立叶变换去噪方法相比,小波变换去噪方法具有明显的优越性。 3.2小波阈值去噪的基本方法 3.2.1阈值去噪原理  Donoho提出的小波阈值去噪方法的基本思想是当w小于某个临界阈值  jk  ,时,认为这时的小波系数主要是由噪声引起的,予以舍弃。当w大于这个临界  jk  ,阈值时,认为这时的小波系数主要是由信号引起,那么就把这一部分的w直接  jk  ,保留下来(硬阈值方法),或者按某一个固定量向零收缩(软阈值方法),然后用新的小波系数进行小波重构得到去噪后的信号。此方法可通过以下三个步骤实现:  (1)先对含噪声信号f(t)做小波变换,得到一组小波分解系数w。  jk  ,    (2)通过对分解得到的小波系数w得出估计小波系数使进行阈值处理,  w  jk  j,k  ,得w- u,尽可能的小。  jkjk  ,,      (3)利用估计小波系数进行小波重构,得到估计信号了,即为去噪  f(t)  w  j,k之后的信号。  需要说明的是,在小波阈值去噪法中,最重要的是闭值函数和闲值的选取。 3.2.2阈值函数的选取  阈值函数关系着重构信号的连续性和精度,对小波去噪的效果有很大影响。目前,阈值的选择主要分硬阈值和软阈值两种处理方式。其中,软阈值处理是将信号的绝对值与阈值进行比较,当数据的绝对值小于或等于阈值时,令其为零;大于阈值的数据点则向零收缩,变为该点值与阈值之差。而硬阈值处理是将信号的绝对值阈值进行比较,小于或等于阈值的点变为零,大于阈值的点不变。但硬阈值函数的不连续性使消噪后的信号仍然含有明显的噪声;采用软阈值方法虽然连续性好,但估计小波系数与含噪信号的小波系数之间存在恒定的偏差,当噪声

信号很不规则时显得过于光滑。 4、基于小波变换的图像分解与重构   ,  二维离散小波主要解决二维多分辨率分析问题,如一幅二维离散图像{c(mn)} ,二小波可以将它分解为各层各个分辨率上的近似分量cAj,水平方向细节分量 cHj,垂直方向细节分量cVj,对角线方向细节分量cDj,其二层小波图像分解过程如图 4-1 所示:       图4-1 小波图像分解过程                       图4-2 小波图像分解过程  其二层小波图像重构过程正好与此相反如图4-2所示,基于小波变换的图像处理,是通过对图像分解过程中所产生的近似分量与细节分量系数的调整,使重构图像满足特定条件,而实现图像处理。 三、程序实现图像消噪  常用的图像去噪方法是小波阈值去噪法,它是一种实现简单而效果较好的去噪方法,阈值去噪方法的思想很简单,就是对小波分解后的各层稀疏模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出去噪后的图像。在阈值去噪中,阈值函数体现了对小波分解稀疏的不同处理策略以及不同的估计方法,常用的阈值函数有硬阈值和软阈值函数,硬阈值函数可以很好的保留图像边缘等局部特征,但图像会出现伪吉布斯效应,等视觉失真现象,而软阈值处理相对较平稳,但可能会出现边缘模糊等失真现象,为此人们又提出了半软阈值函数。小波阈值去噪方法处理阈值的选取,另一个关键因素是阈值的具体估计,如果阈值太小,去噪后的图像仍然存在噪 声,相反如果阈值太大,重要图像特

征又将被滤掉,引起偏差。从直观上讲,对给定的小波系数,噪声越大,阈值就越大。  图像信号的小波去噪步骤与一维信号的去噪步骤完全相同,只使用二维小波  2分析工具代替了一维小波分析工具,如果用固定阈值形式,则选择的阈值用m代替了一维信号中的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');  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;                   % 设置显示比例  程序运行结果:  原始图像含噪图像        5050  100100  150150  200200  250250  5010015020025050100150200250  第一次消噪后的图像第二次消噪后的图像        5050  100100  150150  200200  250250     5010015020025050100150200250  图5-1 去噪前后图像  比较上图中几幅图像,可见第一次去早滤除了大部分的高频噪,但与原图比较,依然有不少的高频噪声,第二次去噪在第一次的去噪基础上,再次滤除高频噪声,去噪效果较好,但图像的质量比原图稍差。

六、总结  随着信息时代计算机的日益普及,人们对数字图像的质量要求越来越高。但是数字图像在采集和传输过程中,难免会受到噪声的污染,这不仅不符合人们的视觉效果,而且也不利于图像的进一步处理。因此,图像去噪具有很强的理论意义和应用价值。图像消噪是信号处理中的一个经典问题,传统的消噪方法多采用平均或线性方法进行,但 是其消噪效果不好,随着小波理论的不断完善,它以自身良好的时频特性在图像消噪领域受到越来越多的关注,文中将以 MATLAB 为平台介绍以小波变换去除图像噪声的基本方法。       采用基于小波变换的图像增强技术可以通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理达到图像增强的作用。小波阈值去噪方法是小波去噪领域使用较多的方法,因为其理论相对比较成熟,而且去噪效果也比较好。它是集图像去噪和增强为一体的优秀处理方法,被广泛的应用于图像处理中,大量实践也证明该算法优于其他增强技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

作业2-线性回归的Matlab代码实现

一、前言 相关配置:Matlab 2020a(版本的影响应该不大,.m代码基本都能运行,个人感觉就是Simulink对版本的要求高一些) 二、任务描述 基于近两节课的理论推导,用代码实现线性回归,并对预测结果进…

基于SpringBoot+Vue+uniapp微信小程序的澡堂预订的微信小程序的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

目标检测系统【环境详细配置过程】(CPU版本)

(如果你使用的是笔记本电脑,没有比较好的GPU,可以配置CPU运行环境) 链接:上百种【基于YOLOv8/v10/v11的目标检测系统】目录(pythonpyside6界面系统源码可训练的数据集也完成的训练模型) 1.安装…

MySQL中什么情况下类型转换会导致索引失效

文章目录 1. 问题引入2. 准备工作3. 案例分析3.1 正常情况3.2 发生了隐式类型转换的情况 4. MySQL隐式类型转换的规则4.1 案例引入4.2 MySQL 中隐式类型转换的规则4.3 验证 MySQL 隐式类型转换的规则 5. 总结 如果对 MySQL 索引不了解,可以看一下我的另一篇博文&…

如何在 JavaScript 项目中限制Node.js版本

前言 在现代JavaScript开发中,Node.js扮演了一个非常重要的角色。不同版本的Node.js可能会带来不同的特性和行为,因此在项目中限制Node版本是一个很关键的步骤。 本文将通过通俗易懂的方式,教你如何在JavaScript项目中限制Node.js的版本。 …

CTF(七)

导言: 本文主要讲述在CTF竞赛中,Misc(杂项)题目中的CatchCat。 靶场链接:攻防世界 (xctf.org.cn) 一,分析题目。 下载并解压附件: CatchCat.txt文件内容为: 发现是坐标。 另一个…

Spring Boot在线考试系统:JavaWeb技术的最佳实践

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不足,创建了一个计算机管理基于Ja…

Linux——应用软件的生命周期

功能开发测试: 功能性测试 对应开发框架的测试用例代码的漏洞扫描 Web服务器版本应用开发语言的依赖关系和版本信息是否会造成类似内存泄露等影响系统性能的问题压力测试应用的部署 获取应用代码以及应用静态文件的代码包将安装包中的文件按照服务器配置的架构&…

表贴式永磁同步电机无感控制-基于滑膜观测器SMO法

导读:在全速域范围内,一般的永磁同步电机无感控制要分为低速区域和高速区域两个部分。原因在于常规的方法是利用模型建立反电动势观测器来求解转子位置信息,但其只适合在中高速区域。本文介绍一种基于滑膜观测器SMO法+PLL的方法。 需要文章中的仿真,关注微信公众号:浅谈电…

python机器人编程——用python调用API控制wifi小车的实例程序

目录 一、前言二、一个客户端的简单实现2.1 首先定义一个类及属性2.2 其次定义连接方法2.3 定义一些回调函数2.4 定义发送小车指令方法2.5 定义一个正常关闭方法 三、python编程控制小车的demo实现四、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源p…

【大数据技术基础 | 实验四】HDFS实验:读写HDFS文件

文章目录 一、实验目的二、实验要求三、实验原理(一)Java Classpath(二)Eclipse Hadoop插件 四、实验环境五、实验内容和步骤(一)配置master服务器classpath(二)使用master服务器编写…

git修改默认分支

你可以通过以下步骤修改 Git 仓库的默认分支: 1. 修改现有仓库的默认分支: 如果你已经有一个 Git 仓库,想要更改默认分支的名字(例如从 master 改为 main): # 重命名当前分支为 main git branch -m mast…

C. Klee in Solitary Confinement(2021 南京 ICPC)

C. Klee in Solitary Confinement 观察题目,发现暴力枚举区间不可行。 考虑一个经典套路:独立处理每个数字(考虑一个数字作为众数的时候,只有x和x-k会对答案造成影响,其他是不用考虑的) 于是,考…

JVM学习总结:字节码篇

本文是学习尚硅谷宋红康老师主讲的 尚硅谷JVM精讲与GC调优教程 的总结 ,部分内容也参考了 JavaGuide 网站(文末有链接) JVM 概述 Oracle JDK 与 OpenJDK 是什么关系? 2006 年 SUN 公司将 Java 开源,也就有了 OpenJDK。…

Games202作业5(完结)

单帧降噪 也就是针对图像空间进行降噪 也就是我们需要在像素(i,j)的四周进行采样,然后将采样的权重加到一起,然后所有的权重和像素的乘积也加到一起,然后相除,得到最终滤波后的(i,j)像素期望的结果。 Buf…

P4可编程技术详解:从理论到硬件实现

P4的诞生 为打破传统的固定封装模式,充分解放数据平面的编程能力,Nick McKeown领导的斯坦福大学研究团队于2014年提出可编程处理语言P4。借助P4的数据平面编程能力,用户可在网卡、交换机、路由器等网络设备上实现包括VXLAN、MPLS等在内的各种…

电影评论网站开发:Spring Boot技术指南

3系统分析 3.1可行性分析 通过对本电影评论网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本电影评论网站采用SSM框架,JAVA作为开发语言&#…

音视频入门基础:H.264专题(19)——FFmpeg源码中,获取avcC封装的H.264码流中每个NALU的长度的实现

一、引言 从《音视频入门基础:H.264专题(18)——AVCDecoderConfigurationRecord简介》中可以知道,avcC跟AnnexB不一样,avcC包装的H.264码流中,每个NALU前面没有起始码。avcC通过在每个NALU前加上NALUnitL…

Linux文件的查找和打包以及压缩

文件的查找 文件查找的用处,在我们需要文件但却又不知道文件在哪里的时候 文件查找存在着三种类型的查找 1、which或whereis:查找命令的程序文件位置 2、locate:也是一种文件查找,但是基于数据库的查找 3、find:针…

基于SpringBoot+Vue+uniapp微信小程序的社区门诊管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…