【图像恢复】基于交替乘子方法(ADMM)图像恢复算法研究[固定点收敛和应用](Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文献


💥1 概述

文献来源:

即插即用的ADMM图像恢复算法:固定点收敛和应用

交替方向乘子方法(ADMM)是一种广泛用于解决图像恢复中约束优化问题的算法。在许多有用的特性中,ADMM算法的一个关键特点是其模块化结构,允许将任何现成的图像去噪算法插入到ADMM算法的子问题中。由于其插件式的特性,这种类型的ADMM算法被称为“即插即用ADMM”。即插即用ADMM在最近的一些论文中展示了有希望的实证结果。然而,目前尚不清楚在什么条件下以及使用哪种去噪算法才能保证其收敛性。此外,由于即插即用ADMM使用了特定的变量分割方式,对于常见的高斯和泊松图像恢复问题是否可以进行快速实现也不清楚。本文提出了一种具有可证明的固定点收敛性的即插即用ADMM算法。我们证明了对于满足一种被称为有界去噪器的渐近准则的任何去噪算法,即插即用ADMM在连续方案下收敛到一个固定点。我们还针对超分辨率和单光子成像两个图像恢复问题提出了快速实现。我们将即插即用ADMM与各类最先进的算法进行了比较,并展示了算法的有希望的实验结果。

原文摘要:

Abstract:

Alternating direction method of multiplier (ADMM) is a widely used algorithm for solving constrained optimization problems in image restoration. Among many useful features, one critical feature of the ADMM algorithm is its modular structure, which allows one to plug in any off-the-shelf image denoising algorithm for a subproblem in the ADMM algorithm. Because of the plug-in nature, this type of ADMM algorithms is coined the name “Plug-and-Play ADMM.” Plug-and-Play ADMM has demonstrated promising empirical results in a number of recent papers. However, it is unclear under what conditions and by using what denoising algorithms would it guarantee convergence. Also, since Plug-and-Play ADMM uses a specific way to split the variables, it is unclear if fast implementation can be made for common Gaussian and Poissonian image restoration problems. In this paper, we propose a Plug-and-Play ADMM algorithm with provable fixed-point convergence. We show that for any denoising algorithm satisfying an asymptotic criteria, called bounded denoisers, Plug-and-Play ADMM converges to a fixed point under a continuation scheme. We also present fast implementations for two image restoration problems on superresolution and single-photon imaging. We compare Plug-and-Play ADMM with state-of-the-art algorithms in each problem type and demonstrate promising experimental results of the algorithm.

📚2 运行结果

部分代码:

%add path to denoisers
addpath(genpath('./denoisers/BM3D/'));
addpath(genpath('./denoisers/TV/'));
addpath(genpath('./denoisers/NLM/'));
addpath(genpath('./denoisers/RF/'));

%read test image
z = im2double(imread('./data/House256.png'));

%construct A matrix, deblurring as an example
dim = size(z);
h = fspecial('gaussian',[9 9],1);
A = @(z,trans_flag) afun(z,trans_flag,h,dim);

%reset random number generator
rng(0);

%set noies level
noise_level = 10/255;

%calculate observed image
y = A(z(:),'transp') + noise_level*randn(prod(dim),1);
y = proj(y,[0,1]);
y = reshape(y,dim);

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文献

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

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

相关文章

《Python入门到精通》函数详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…

易服客工作室:7个优质WordPress LMS线上教育系统插件比较(优点和缺点)

您是否正在为您的 WordPress 网站寻找最好的 LMS 插件?在线学习管理系统 (LMS) 插件允许您使用 WordPress 创建和运行类似 Udemy 的在线课程。 一个完美的 WordPress LMS 插件包括管理在线课程内容、处理订阅、运行和评分测验、接受付款等功能。 在本文中&#xf…

yolov5代码解读之yolo.py【网络结构】

​这个文件阿对于做模型修改、模型创新有很好大好处。 首先加载一些python库和模块: 如果要执行这段代码,直接在终端输入python yolo.py. yolov5的模型定义和网络搭建都用到了model这个类(也就是以下图片展示的东西):(以前代码没…

【学习日记】【FreeRTOS】调度器函数实现详解

写在前面 本文主要是对于 FreeRTOS 中调度器函数实现的详细解释,代码大部分参考了野火 FreeRTOS 教程配套源码,作了一小部分修改。 一、MSP 和 PSP Cortex-M有两种栈空间,主堆栈和进程堆栈。 MSP 用于系统级别和中断处理的堆栈 MSP 用于保…

linux配置上网 linux adsl拨号上网设置

Linux里面配置ADSL上网是件很麻烦的事。但配置完成之后就能开机自动拨号上网,可谓十分的方便。支持的系统有Redhat,CentOS,SuSE,FreeBSD,Ubuntu等常见的Linux。 工具/原料 ADSL网络,电信,网通,移动等常见宽带。 Linux系统的安装光…

MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0)

文章目录 一、简介1. MinGW 和 MinGW-W64 区别和联系2. MSVCRT 和 UCRT 介绍 二、下载1. 从 sourceforge.net 下载2. 从 github 下载3. 从 镜像站点 下载4. 自己编译 三、安装与配置1. 在线安装2. 离线安装3. 环境配置 四、总结 一、简介 1. MinGW 和 MinGW-W64 区别和联系 M…

LinearAlgebraMIT_8_TheRankOfMatrix

这节课中主要讲解根据秩来判断方程组/矩阵的(solvability)解情况,即通过秩来判断(aumented matrix)增广矩阵的解。我们需要直接求解方程组的解就是求解矩阵的解。 x.1 判断(非齐次线性方程组)Axb是否有解 我们以下面这个方程组为例,它具有3个约束条件和…

MyBatis and or使用列表控制or条件

背景&#xff1a;最近项目需要&#xff0c;师傅可以查找订单&#xff0c;而师傅是指定可以服务2到3个区域&#xff0c;故需要使用到and, or条件的组合&#xff0c;以下记一下代码。 最重要的代码是&#xff1a; 1、构建List<Consumer<LambdaQueryWrapper<T>>&g…

【微信小程序】通过使用 wx.navigateTo方法进行页面跳转,跳转后的页面中通过一些方式回传值给原页面

以下是几种常见的回传值的方式&#xff1a; 使用 wx.navigateTo 方法传递参数&#xff1a; 在跳转时&#xff0c;可以在目标页面的 URL 中携带参数&#xff0c;然后在目标页面的 onLoad 方法中获取参数&#xff0c;并在目标页面中进行处理。例如&#xff1a; // 原页面跳转到目…

26.Netty源码之ThreadLocal

highlight: arduino-light JDK ThreadLocal 如果你需要变量在多线程之间隔离&#xff0c;或者在同线程内的类和方法中共享&#xff0c;那么 ThreadLocal 大显身手的时候就到了。ThreadLocal 可以理解为线程本地变量&#xff0c;它是 Java 并发编程中非常重要的一个类。 ThreadL…

【BASH】回顾与知识点梳理(二十)

【BASH】回顾与知识点梳理 二十 二十. 十六至十九章知识点总结及练习20.1 总结20.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理&#xff08;目录&#xff09; 二十. 十六至十九章知识点总结及练习 20.1 总结 shell script 是利用 shell 的功能所写的一个『程序 (prog…

《OWASP代码审计》学习——跨站脚本注入(XSS)

一、跨站脚本概述 1.什么是跨站脚本 跨站点脚本(XSS)是一种编码注入漏洞。它通常出现在 web 应用程序中。XSS 使攻击者能够向其他用户浏览的网页中注入恶意内容。XSS 允许攻击者绕过访问控制&#xff0c;它是 OWASP Top10 最常见的漏洞之一。XSS 是网络服务器上的第二大漏洞。…

基于java快餐店线上点餐系统设计与实现

摘 要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订到喜欢的餐品。网上点餐已经是人们生活中所不可缺…

Linux系统性能调优及调试课:Linux Kernel Printk

🚀返回专栏总目录 文章目录 0、printk 说明1、printk 日志等级设置2、屏蔽等级日志控制机制3、printk打印常用方式4、printk打印格式0、printk 说明 在开发Linux device Driver或者跟踪调试内核行为的时候经常要通过Log API来trace整个过程,Kernel API printk()是整个Kern…

amis百度前端框架,在js中使用amis写json转页面

amis百度前端框架&#xff0c;在js中使用用amis写的json页面 1.在项目中使用百度 amis 的sdk做开发库。 <script src"./sdk/sdk/sdk.js"></script> 2。加载sdk中的库&#xff1a; amis amisRequire(amis/embed);amisLib amisRequire(amis);const ma…

Flume拦截器

实现 Interceptor接口 方法1 是初始化: 方法2和3重载 拦截: 方法3 是关闭: 但是flume是通过内部类创建对象的

餐饮管理系统ssm酒店饭店仓库进销存jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 餐饮管理系统ssm 系统有1权限&#xff1a;管理员 二…

flask-sqlalchemy使用

# sqlalchemy 集成到flask中 # 第三方: flask-sqlalchemy 封装了用起来&#xff0c;更简洁 安装 pip install flask-sqlalchemy 使用 # 使用flask-sqlalchemy集成1 导入 from flask_sqlalchemy import SQLAlchemy2 实例化得到对象db SQLAlchemy()3 将db注册到app中db.in…

Vue中使用qrcode说明

1.安装 npm i qrcode1.5.3 2.导入 import QRCode from qrcode 3.转换 说明&#xff1a;拿到服务器传来的字符串&#xff0c;转换成base64&#xff0c;然后通过img标签展示。 // 字符串转成二维码 let result await this.$API.reqPayInfo(this.orderId); 总结&#xff1a;

Java一般用于postgis空间数据库通用的增删查改sql命令

目录 1 增加 2 删除 3 查询 4 更新 "public"."JGSQGW_Geo"为某模式下得表 一般postgrel有这样的设计模式 1 增加 #前端绘制出的数据插入 INSERT INTO "public"."JGSQGW_Geo" ( "geom","gridone","gridon…