基于小波变换贝叶斯LMMSE估计的图像降噪方法(MATLAB 2018)

自从小波被发现以来,由于其优良的时频局部化性能,大大解决了信号与图像降噪的难题。利用小波降噪大致有三种方法,分别是基于小波模极大值原理、基于小波变换系数的相关性,和最为常用的小波阈值函数法。

基于小波模极大值降噪

该方法是根据图像中有效信号和噪声信号在小波变换的各级尺度上具有传播方式的差异性,继而找到因噪声而产生的模极大值点并予以去除,同时并保留图像有效信号所相对应的模极大值点。最后用剩下的模极大值点进行小波系数重构,得到复原图像,实现图像的降噪。其中高斯白噪声和脉冲噪声非常适合用该方法降噪,但同时模极大值法也存在一些缺陷。模极大值法处理过后的图像,会使噪声分量几乎全部消失,只保留了小波分量。经过多个模极大值点重构信号后,会使重构信号有较大误差,图像严重失真。

基于小波系数相关性降噪

研究表明,当一幅图像中同时含有有效信号和噪声信号时,随着小波分解尺度的增加,有效信号的幅值会随之增大,而噪声信号的幅值随之减小。因此经过小波多尺度分解后的图像,其有效信号分量关联性较强,而噪声信号分量关联性很弱。根据这一特性,可对各自的小波系数相关性进行取舍,舍掉噪声信号后便实现了图像的降噪。该方法实现简单,但缺点是取舍相关系数时不准确。

基于小波阈值函数降噪

数字图像由低频分量与高频分量组成。在灰度梯度较小,即灰度变化不明显的区域,属图像低频分量;反之在灰度梯度较大,即灰度变化明显的区域,如图像中目标的边缘处以及图像的噪声处便属图像高频分量。小波阈值函数降噪法的基本思想便是将图像高频部分中的噪声予以剔除,保留图像原始有效信号。数字图像在经过小波分解后,会分解出四个分量,分别是低频分量、水平方向上的高频分量、垂直方向上的高频分量和对角方向上的高频分量。对低频分量不作处理,对剩下的三个高频分量利用小波阈值函数,将噪声信号分离出来。在高频分量中,噪声系数的幅值较小,有效信号的系数幅值较大。因此便可以选取一个阈值,将两种幅值差异较大的信号分隔开来,然后将幅值较低的噪声信号予以剔除,同时将幅值较大的有效信号予以保留。最后再将四个分量进行小波重构,便可得到降噪处理后的图像。该方法是目前信号降噪的主要技术手段,因其思想简单,可操作性强,计算量相对较小,降噪效果佳而被广泛使用。

鉴于此,提出一种基于小波变换贝叶斯LMMSE估计的图像降噪方法,运行环境为MATLAB 2018。


clc;clear all
original = imread('05f35a6a-2c42-4f6a-9bad-a5f500ebe9eb.00.jpg');
original = original(:,:,1); %Rendo immagine bianco e nero (1 Channel)
original = cast(original, 'double');% noisy = sqrt(speckleNoise(original.^2,Looks));
noisy = original;lognoisy = zeros(size(noisy));for i=1:size(original,1)for j=1:size(original,2)if noisy(i,j) <= 0lognoisy(i,j) = 0;elselognoisy(i,j) = log(noisy(i,j));endend
end%wname = 'bior3.5';
wname = 'bior4.4';
level = 1;
[C,S] = wavedec2(lognoisy,level,wname);type1 = 'heursure';
type2 = 'penalhi';
thr = wthrmngr('dw2ddenoLVL',type2,C,S,3);
sorh = 's';
[XDEN,cfsDEN,dimCFS] = wdencmp('lvd',C,S,wname,level,thr,sorh);XDEN = exp(XDEN);mse = sum(sum(original-XDEN).^2)/(numel(original))
PSNR = 20*log10(255^2/mse)figure;
subplot(1,2,1);
imagesc(noisy); colormap gray; axis off;
title('Noisy Image');
subplot(1,2,2);
imagesc(XDEN); colormap gray; axis off;
title('Denoised Image');figure;
imshow(original/255);%完整代码:https://mbd.pub/o/bread/ZZWWlJ1rfigure;
imshow(XDEN/255);

图片

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

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

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

相关文章

AI程序员来了,大批码农要失业

根据GitHub发布的《Octoverse 2021年度报告》&#xff0c;2021年中国有755万程序员&#xff0c;排名全球第二。 ChatGPT的出现&#xff0c;堪比在全球互联网行业点燃了一枚“核弹”&#xff0c;很多人都会担心“自己的工作会不会被AI取代”。 而2024年的AI进展速度如火箭般&am…

S4 BP 维护

前台输入Tcode:BP 问候填写金税开票信息使用的开户行名称,注释填写金税开票信息使用的开户行代码 屏幕下滑按需填写其他数据,如:街道2,街道3,街道/门牌号,街道4,街道5,区域,邮编、城市、国家、地区、语言,电话(发票地址里的电话(必须是客户开票资料里提供的电话,会…

【MyBatisPlus】MyBatisPlus条件查询

【MyBatisPlus】MyBatisPlus条件查询 文章目录 【MyBatisPlus】MyBatisPlus条件查询1、查询条件方式2、组合条件3、NULL值处理4、查询投影-设置【查询字段、分组】5、查询条件6、字段映射与表名映射问题导入 1、查询条件方式 MyBatisPlus将书写复杂的SQL查询条件进行了封装&…

JSON 数据格式化方法

文章目录 数据介绍IDE 或脚本格式化在线工具网址总结 数据介绍 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它基于JavaScript 编程语言的一个子集。尽管它起源于 JavaScript&#xff0c;但 JSON 已经成为了一个完全独立于…

保护隐私下的数据提取:方法与伦理考量

在数字化时代&#xff0c;数据的收集和分析为我们提供了前所未有的机会和便利。然而&#xff0c;这些机遇也伴随着隐私泄露的严重风险。如何在保护个人隐私的前提下进行数据提取&#xff0c;已成为一个亟待解决的问题。本文将探讨保护隐私下的数据提取方法&#xff0c;并深入分…

2024专精特新趋势论坛,汉王友基分享数字化创新实践之路

5月31日&#xff0c;由深圳市中小企业服务局作为指导单位&#xff0c;36氪主办的“WISE新风向2024专精特新趋势论坛”在粤港澳大湾区顺利举办。 汉王友基作为国家级专精特新“小巨人”企业代表&#xff0c;受邀参加此次大会&#xff0c;企业CTO邓立明先生进行了《数字赋能&…

让企业自己掌握数据主权,可道云teamOS让企业数据私有化不再是难题,让企业数据更安全、更可控

越来越多的企业开始意识到&#xff0c;仅仅依赖公共云存储服务可能无法满足其对于数据安全性的高标准要求。 毕竟每年都会有不同程度的数据泄露问题爆出&#xff0c;导致大家在使用企业网盘的时候也总是惴惴不安。一旦数据泄露或被非法获取&#xff0c;企业将面临巨大的经济损…

geotrust泛域名https600元

泛域名https证书&#xff0c;也可以称之为通配符https证书&#xff0c;是开发者用来保障网站安全、提升用户信任度的方案之一。开发者可以使用泛域名https证书为多个网站进行数据加密以及身份认证服务&#xff0c;提升网站的安全性。今天就随SSL盾小编了解geotrust旗下的泛域名…

如何理解 Java 线程的概念及线程的创建和管理,包括 Runnable 接口和 Thread 类

多线程编程是现代软件开发中的重要技术&#xff0c;能够显著提高程序的效率和响应速度。Java 提供了丰富的多线程编程支持&#xff0c;使开发者可以轻松地创建和管理线程。 1. 线程的基本概念 1.1 进程与线程 进程&#xff1a;是操作系统中独立运行的程序&#xff0c;每个进…

AI大模型页面

自己做的AI&#xff0c;模仿GPT。 访问地址&#xff1a;欢迎 请大家给点意见&#xff0c;需要追加哪些功能。

前端高速成长的八个阶段

高速成长阶段一&#xff1a;学会用 Google 英文搜索。 为什么不用百度&#xff1f; 因为搜索范围与质量相差太大。用谷歌&#xff0c;你通常能在第一页找到高质量的答案&#xff0c;而在百度你可能需要花费更多时间。英文搜索并不难&#xff0c;例如遇到 React 报错&#xff0…

Windows下设置pip代理(proxy)

使用场景 正常网络情况下我们安装如果比较多的python包时&#xff0c;会选择使用这种 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-hostpypi.tuna.tsinghua.edu.cn 国内的镜像来加快下载速度。 但是&#xff0c;当这台被限制上…

【python】修改目标检测的xml标签(VOC)类别名

需求&#xff1a; 在集成多个数据集一同训练时&#xff0c;可能会存在不同数据集针对同一种目标有不同的类名&#xff0c;可以通过python脚本修改数据内的类名映射&#xff0c;实现统一数据集标签名的目的。 代码&#xff1a; # -*- coding: utf-8 -*- # Time : 2023/9/11 1…

出海APP遭遇大流量攻击的应对与防御策略

随着全球化的加速&#xff0c;越来越多的中国企业选择将APP推向海外市场。然而&#xff0c;这也意味着他们将面临更加复杂多变的网络安全环境&#xff0c;其中大流量DDoS攻击便是常见且破坏力巨大的威胁之一。本文将深入探讨出海APP遭遇大流量攻击的识别、应急处理及长期防御策…

如何选择实名认证接口?C++身份证二、三要素实名认证接口提供厂商

线上平台进行身份证实名认证&#xff0c;有助于保障交易的安全性&#xff0c;防止身份信息被盗用的风险&#xff0c;其主要应用于金融、在线银行、支付平台、社交媒体、账号注册、内容发布等多种应用场景。那么&#xff0c;又当如何选择实名认证接口厂家呢&#xff1f; 翔云人…

java中的注解

文章目录 定义格式使用类型内置注解元注解自定义注解 注解实现 定义 注解一般用于对程序的说明&#xff0c;想注释一样&#xff0c;但是区别是&#xff0c;注释是给人看的&#xff0c;注解是给程序看的让编译器进行编辑检查的作用&#xff0c;比如&#xff1a;Override修饰的方…

富格林:正确应对虚假暗箱计策

富格林悉知&#xff0c;当前投资者对现货黄金交易热情高涨&#xff0c;要想通过现货黄金交易获得可观的收益&#xff0c;那么对于行情的准确分析和判断便是不可或缺的。富格林认为&#xff0c;基本上每位投资者都需要花费时间和精力去学习正规的技巧提高操作技术才可正确应对虚…

osi七层网络模型安全加固

应用层加固 应用层的攻击&#xff1a; 1、针对应用层协议的攻击&#xff1a;HTTP攻击、DNS攻击、电子邮件攻击等&#xff0c;利用应用层协议的漏洞&#xff0c;构造恶意数据包&#xff0c;是目标服务器执行恶意代码或暴露敏感信息 HTTP攻击&#xff1a;XSS、CSRF、HTTP头注入…

你每天都在用的APP,原来都是Python写的!

&#x1f446;点击关注 获取更多编程干货&#x1f446; 要说Python的用途&#xff0c;那可太多了&#xff0c;也许你不知道Python是什么&#xff0c;但你一定用过它开发的产品&#xff0c;就像你可能不了解汽车引擎的构造&#xff0c;但你每天都享受着汽车带来的便利一样。 比…

stm32-DMA转运数据

在配置前要记得先定义一下DMA转运的源端数组和目标数组两个数组哦。 接下来我们就开始准备配置吧 配置 初始化 1.RCC开启时钟&#xff08;开启DMA的时钟&#xff09; void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) 作用&#xff1a;开启时…