基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

4.1 块定义与相似度计算

​4.2 贝叶斯框架下的加权融合

4.3 加权最小均方误差估计

5.完整程序


1.程序功能描述

       基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真,对比不同的参数对OBNLM算法的影响。

2.测试软件版本以及运行结果展示

MATLAB2022A版本运行

3.核心程序

.....................................................................
Im0     = imread('test.png');
Blks1   = 3; 
Blks2   = 5; 
Blks3   = 7; 
Wins    = 17; 
Gblk    = 2;  
h       = 5; 

Im0     = double(Im0);
Vmax    = 255;
Vmin    = 0;
Imax    = max(max(Im0));
Io      = 0;
Idiff   = Imax - Io;
Vd      = (Vmax - Vmin)/Idiff;
Im0     = (Im0 - Io) * Vd + Vmin;
Im0     = uint8(Im0);

Im1     = func_Bayes(Im0, Blks1, Wins, Gblk, h);
Im2     = func_Bayes(Im0, Blks2, Wins, Gblk, h);
Im3     = func_Bayes(Im0, Blks3, Wins, Gblk, h);



figure
subplot(221)
imshow(Im0)
title('原图')
subplot(222)
imshow(Im1)
title('OBNLM处理后图像,block=3*3')
subplot(223)
imshow(Im2)
title('OBNLM处理后图像,block=5*5')
subplot(224)
imshow(Im3)
title('OBNLM处理后图像,block=7*7')
 







Im0     = imread('test.png');
Blks1   = 3;  
Wins1   = 13; 
Wins2   = 17; 
Wins3   = 21; 
Gblk    = 2;  
h       = 5; 

Im0     = double(Im0);
Vmax    = 255;
Vmin    = 0;
Imax    = max(max(Im0));
Io      = 0;
Idiff   = Imax - Io;
Vd      = (Vmax - Vmin)/Idiff;
Im0     = (Im0 - Io) * Vd + Vmin;
Im0     = uint8(Im0);

Im1a    = func_Bayes(Im0, Blks1, Wins1, Gblk, h);
Im2a    = func_Bayes(Im0, Blks1, Wins2, Gblk, h);
Im3a    = func_Bayes(Im0, Blks1, Wins3, Gblk, h);



figure
subplot(221)
imshow(Im0)
title('原图')
subplot(222)
imshow(Im1a)
title('OBNLM处理后图像,Win=13*13')
subplot(223)
imshow(Im2a)
title('OBNLM处理后图像,Win=17*17')
subplot(224)
imshow(Im3a)
title('OBNLM处理后图像,Win=21*21')
53

4.本算法原理

       分块贝叶斯非局部均值优化(Optimized Block-Based Non-local Means, OBNLM)是一种高级图像去噪技术,它在经典非局部均值(Non-local Means, NLM)算法的基础上引入了块的概念和贝叶斯统计理论,以提高去噪效率和保真度。OBNLM不仅考虑了图像中像素间的相似性,还通过块匹配和概率模型来优化相似块的加权融合,从而更精准地恢复图像细节。非局部均值算法的基本思想是认为图像中的某个像素不仅仅与其周围的像素有关系,还可能与图像中远离它的、具有相似结构的其他像素相关。OBNLM在此基础上进一步提出,将图像分割成多个块,并在块级别上寻找相似性,这不仅减少了计算复杂度,还能有效捕捉大范围的图像结构信息。

4.1 块定义与相似度计算

4.2 贝叶斯框架下的加权融合

4.3 加权最小均方误差估计

       实际计算中,直接求解上述最小化问题计算复杂度高,因此OBNLM采用近似方法,如快速搜索策略和分块的迭代更新机制,减少计算量。同时,为了处理边缘区域和块边界问题,常采用边界扩展或镜像填充等技术。

5.完整程序

VVV

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CASS+arcgis实现图斑的分割

1、在CASS中将图形绘制好,待分割图形为闭合线,使用线段将其分割成很多块,如下: 2、保存文件。打开arcgisPro,加载dwg图形,如下: 效果如下: 3、分别将面和线导出,如下&…

FL Studio21.2.5中文版电子音乐制作的强大工具

在当今的数字音乐时代,电子音乐已经成为了全球音乐市场中不可或缺的一部分。越来越多的音乐爱好者开始尝试自己动手创作电子音乐,而FL Studio 21中文版正是为他们量身打造的一款强大工具。作为一个音频制作爱好者,我深知一个好的数字音频工作…

LeetCode热题100 Day1——双指针

双指针 移动零11. 盛最多水的容器 移动零 思路: 双指针i,j,j指针遍历数组,i指针存放非0元素。遍历结束后,i指针及其后面的一定是0,就再将空出来的位置设置为0 移动零 class Solution {public void moveZeroes(int[] …

PPT忘记保存?教你如何轻松恢复

在日常办公中PPT文件作为主流文档格式,承载着我们大量的工作成果。然而当不小心误点了“不保存”按钮,或是遭遇软件崩溃等意外情况导致文档丢失时,文件内容是否还能够能恢复,往往成为我们最关心的问题。本文将为您提供五大免费且实…

Centos安装nvm管理node版本(让安装变得可控又快捷)

Centos安装nvm管理node版本(让安装变得可控又快捷) 没有找到一个对的人,有可能是你没有走对那条路,也有可能是你没有睁开眼睛,而更大的可能是,你根本就没有出发去找。 安装说明 nvm安装目录:/us…

vue项目出现多次ElMessage

问题: 解决方法: let message null if (message null) { message ElMessage.error(“登录过期,请重新登录”); } 最终效果:只出现一个弹框

N进制计数器【02】

大容量N进制计数器 集成计数器容量的扩展 集成计数器级联扩展容量 【例1】由两片 74LS161 级联组成 256 进制(8位二进制)同步加法计数器 【解】级联时,外加时钟信号同时接到各片计数器的时钟输入端,用前级计数器的进位输出 C…

蓝硕硬盘数据恢复方法详解:安全、高效的解决方案

在数字化时代,硬盘作为我们存储和传输数据的重要载体,其数据安全性显得尤为重要。然而,无论是由于误操作、硬件故障还是病毒攻击,硬盘数据丢失的风险始终存在。蓝硕硬盘作为市场上的一款知名产品,其数据恢复同样是我们…

突破空间限制,这些远程控制软件为父母送上“手把手”的教导,解决异地办公难题,出差无忧

在现代社会,科技的飞速发展带来了诸多便利,但同时也给一些年长的父母们带来了困扰。 当父母们面对智能手机电脑等高科技产品时,他们往往感到无所适从,而子女们忙于工作、学习或其他原因,常常无法时刻陪伴在父母身边&a…

【Unity iOS打包】Library not loaded: ‘@rpath/AdjustSdk.framework/AdjustSdk‘

Unity打包iOS,XCode运行App黑屏卡死,报错: dyld[8412]: Library not loaded: rpath/AdjustSdk.framework/AdjustSdkReferenced from: /private/var/containers/Bundle/Application/C019F943-138F-4B33-AAC1-F18453F942D9/AnimalsBAMBAM.app/…

手写promise、call、apply、debounce、throttle 等

1、promise 1.1 实现resolve和reject class MyPromise {// 构造方法constructor(executor) {// 初始化值this.initValue()// 初始化this指向this.initBind()try {// 执行传进来的函数executor(this.resolve, this.reject)} catch (e) {// 捕捉到错误直接执行rejectthis.rejec…

Gartner发布评估威胁情报计划有效性指南:评估威胁情报有效性的四个步骤

许多组织都在努力实施 TI 并评估其价值。安全和风险管理领导者必须使用优先情报要求来评估其 TI 计划的有效性,并根据其组织战略完善该计划。 主要发现 尽管许多组织已将威胁情报 (TI) 纳入其安全计划,但他们很难评估其性能、成熟度以及在相关产品和服务…

再次疾呼:一稿多投是作者的合法权利!

近日,有作者反应在收到拒稿邮件之后另投他刊,竟然被判定一稿多投。 出版社解释说现在大多数期刊都是使用投稿系统收稿,如果被退稿后马上又投稿其他期刊,由于时间距离太近,仍然会被系统判定为一稿多投的。核心期刊编辑…

深入探索C++继承机制:从概念到实践的全面指南

目录 继承的概念及定义 继承的概念 继承的定义 定义格式 继承方式和访问限定符 继承基类成员访问方式的变化 默认继承方式 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 继承的方式 菱形虚拟继承 菱形虚拟继承原理 继承…

「盘点」JetBrains IDEs v2024.1新功能一览,更智能的开发体验!

JetBrains IDEs日前正式发布了v2024.1版本,此版本中最大的亮点就是带来了AI赋能的全行代码补全,同时在最新的IDEs中重做了终端、拥有更强大的代码编辑和导航功能、更智能的代码分析和提示、更优化的性能、更丰富的插件和集成等。总的来说,Jet…

淘宝API探秘:一键获取店铺所有商品的魔法之旅

在数字时代的今天,数据已经成为了商业世界中的魔法石。而对于淘宝店主或者那些想要深入探索淘宝数据的人来说,淘宝API就像是打开阿里巴巴宝藏库的钥匙。今天,我们就来一起探索如何使用淘宝API,特别是如何获取店铺所有商品的接口&a…

为WPF的Grid添加网格边框线

在WPF中使用Grid绘制表格的时候,如果元素较多、排列复杂的话,界面会看起来很糟糕,没有层次,这时用网格或边框线分割各元素(标签或单元格)将会是页面看起来整齐有条理。 默认没有边框线的如下图所示&#xf…

Java 循环嵌套深度揭秘:挑战极限与性能优化

哈喽,大家好,我是木头左! 探索Java的调用栈极限 在Java中,方法调用是通过栈(Stack)这种数据结构来实现的。每当一个方法被调用时,一个新的栈帧(Stack Frame)会被创建并压…

React 中的 Fiber 架构

React Fiber 介绍 React Fiber 是 React 的一种重写和改进的核心算法,用于实现更细粒度的更新和高效的调度。它是 React 16 版本中的一个重要更新,使得 React 能够更好地处理复杂和高频的用户交互。以下是对 React Fiber 的详细介绍: 为什么…

便民社区信息小程序源码系统 功能强大 带生活电商+求职招聘功能 带完整的安装代码包以及搭建教程

系统概述 便民社区信息小程序源码系统是一款集多种功能于一身的综合性平台。它旨在为用户提供便捷的生活服务,满足社区居民的各种需求。无论是购物、求职还是获取社区信息,都能在这个平台上得到满足。该系统采用先进的技术架构,确保系统的稳…