基于分块贝叶斯非局部均值优化(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

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

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

相关文章

k8s ceph(静态pvc)

1.在 Kubernetes 节点上安装ceph-common 包。这个包包含了连接到 Ceph 集群所需的工具和库。可以使用以下命令在每个节点上安装: sudo apt-get install ceph-common2.在 Kubernetes 中创建一个 Secret 对象,用于存储连接到 Ceph 集群所需的密钥和配置信息…

SA316系列音频传输模块-传输距离升级音质不打折

SA316是思为无线研发的一款远距离音频传输模块,音频采样率为48K,传输距离可达200M。为了满足更多用户需求,思为无线在SA316基础上进一步增加传输距离推出SA316F30。相比SA316性能,同样其采用48K采样,-96dBm灵敏度&…

SAP PP学习笔记 - 错误 CX_SLD_API_EXCEPTION - Job dump is not fully saved (too big)

我这个错误是跑完MRP,然后在MD04查看在库/所有量一览, 点计划手配(Planned order 计划订单)生成 制造指图(Production order 生产订单), 到目前这几步都OK,然后在制造指图界面点保…

Linux之sshpass命令

介绍 sshpass是一个工具,用于通过SSH连接到远程服务器时自动输入密码。它允许您在命令行中指定密码,以便在建立SSH连接时自动进行身份验证。 安装 # 以centos为例 yum install sshpass -y 使用方法 sshpass [-f filename | -d num | -p password | …

校园周边美食探索及分享平台,基于 SpringBoot+Vue+MySQL 开发的前后端分离的校园周边美食探索及分享平台设计实现

目录 一. 前言 二. 功能模块 2.1. 前台首页功能模块 2.2. 用户功能模块 2.3. 管理员功能模块 三. 部分代码实现 四. 源码下载 一. 前言 美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起&#xff0…

Makefile学习笔记19|u-boot顶层Makefile05

Makefile学习笔记19|u-boot顶层Makefile05 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢。 这里是目录 定义常见构建工具变量 # Make variables (CC, etc...)AS $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPI…

Vue从入门到实战Day12~14 - Vue3大事件管理系统

一、用到的知识 Vue3 compositionAPIPinia / Pinia持久化处理Element Plus(表单校验,表格处理,组件封装)pnpm 包管理升级Eslint prettier 更规范的配置husky(Git hooks工具):代码提交之前,进行校验请求模…

OrangePi Kunpeng Pro ——信创再接力

文章目录 OrangePi Kunpeng Pro ——信创再接力1. 绪论1.1 开箱 2. 硬件介绍2.1 硬件配置2.2 硬件清单 3. 网络测试3.1 有线连接3.2 WIFI连接 4.查看系统配置5. 安装常用软件5.1 安装python5.1.1 更换pip源为国内清华源 5.2 安装docker5.3 安装opencv5.4 安装dlib 6.CPU多进程能…

LeetCode //C - 143. Reorder List

143. Reorder List You are given the head of a singly linked-list. The list can be represented as: L0 → L1 → … → Ln - 1 → Ln Reorder the list to be on the following form: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … You may not modify the values i…

MVCC机制

个人理解篇,不一定对,应付面试的时候看的 MVCC(Multi-Version Concurrency Control)全称多版本并发控制,主要用在隔离模式下的提交读、可重复读模式下,依赖于readview和undolog链 一、readview 1、结构 字段 备注 m_ids 活跃…

如何优化大文件读取时的性能

1、分块读取 1、不要一次性将整个文件加载到内存中,而是将其分割成多个较小的块(例如,每块1MB或更大),然后逐块读取和处理。 2、使用FileInputStream和BufferedInputStream来分块读取文件。 2、使用缓冲区 1、使用…

代码随想录——合并二叉树(Leetcode617)

题目链接 层序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) …

多线程知识04

新建 T1、T2、T3 三个线程,如何保证它们按顺序执行 在Java中,可以使用线程的join()方法来保证线程的顺序执行。join()方法会将线程暂停,直到调用该方法的线程结束执行为止。 以下是创建T1、T2、T3三个线程,并按顺序执行的示例代码…

python项目的数据库迁移工具,类似于Flyway的数据库迁移工具有那些?

Python项目中常用的数据库迁移工具主要有以下几种: Alembic: 这是一个轻量级的数据库迁移工具,主要用于SQLAlchemy项目。它通过版本控制来跟踪和管理数据库模式的变更。 Django Migrations: Django框架自带的迁移工具,用于创建和应用数据库模式变更。 Flask-Migrate: 基于Ale…

《探索 IT 行业的无限可能》

你眼中的IT行业现状与未来趋势 随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。你眼中IT行业的现状及未来发展趋势是怎么样的&#xf…

工业制造企业为什么要进行数字化转型

人人都在谈数字化转型,政府谈数字化策略方针,企业谈数字化转型方案,员工谈数字化提效工具。互联网企业在谈,工业企业也在谈。 在这种大趋势下,作为一个从事TOB行业十年的老兵,今天就来给大家讲讲&#xff…

【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码

文章目录 通讯录管理系统一、系统需求以及成品演示二、代码实现三、完整代码 通讯录管理系统 一、系统需求以及成品演示 1.1 系统需求 通讯录是一个可以记录亲人、好友信息的工具。这里利用C来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人&am…

spring boot 之 接口参数校验

引入pom依赖 <!--参数校验--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>统一返回结果封装 import lombok.Data;import java.io.Serializa…

申请的商标名称相同或近似,如何解决!

最近遇到一些首次申请注册商标的主体&#xff0c;基本想的名称都是两个字或或者两个字加通用词&#xff0c;还有用的行业描述词或缺乏显著特征词&#xff0c;这样去申请注册商标&#xff0c;普推知产老杨分析这样去直接申请注册大概率驳回。 两个字基本上注册的差不多了&#…

Ubuntu 20.04中用scrapy爬取博客园新闻首页的简单示例

一、梳理scrapy项目目录创建&#xff1a; 1、命令行终端定位到pycharm主目录&#xff1a;cd PycharmProjects 2、建立项目名称&#xff1a;scrapy startproject searchArticle 3、定位到项目目录下&#xff1a;cd searchArticle 4、设置爬虫名称与欲爬取的域名地址&#xf…