【通过ADMM进行TV-L1去噪】一种用于总变差去噪的交替方向法研究(Matlab代码实现)

简介: 【通过ADMM进行TV-L1去噪】一种用于总变差去噪的交替方向法研究(Matlab代码实现)

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

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

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

⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

    或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

我们考虑使用总变差(TV)正则化来解决图像去噪问题。由于正则化项的不可微性和非线性性,这个问题在计算上可能具有挑战性。我们提出了一种基于新的变量分裂方法的交替方向增广拉格朗日(ADAL)方法,导致可以高效且准确地解决子问题。新算法的全局收敛性已经针对各向异性TV模型得到证明。对于各向同性TV模型,通过进一步的变量分裂,我们能够推导出一种全局收敛的ADAL方法。我们将我们的方法与与之密切相关的分裂Bregman方法[16]进行比较,并展示它们在一组标准测试图像上的计算性能竞争力。

接下来的论文大纲如下。在第2节中,我们首先简要回顾ADAL方法及其在由变量分裂引起的线性约束优化问题中的应用。在第3.1节中,我们描述了针对各向异性TV模型的提出的变量分裂交替方向增广拉格朗日方法,并在第3.2节证明了其全局收敛性。然后在第3.3节和第3.4节讨论了各向同性情况以及我们的算法与分裂Bregman方法之间的差异。在第3.5节,我们提出了一个针对各向同性TV模型的全局收敛变量分裂ADAL变体。在第4节,我们将我们的算法与分裂Bregman方法在一组标准测试图像上进行比较,并展示了我们的方法在去噪速度和质量方面的有效性。

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

📚2 运行结果

image.gif 编辑

image.gif 编辑

部分代码:

% Initialize Vraiables

Diff_R_I = zeros(size(Img_ori));   % Result - Input

grad_x = zeros(size(Img_ori));  

grad_y = zeros(size(Img_ori));  

aux_Diff_R_I = zeros(size(Img_ori));

aux_grad_x = zeros(size(Img_ori));

aux_grad_y = zeros(size(Img_ori));

Diff = 100000; % Initialize Diff

Cost_prev = 10^5; % Initialize Cost

alpha = 0.02;

beta = 0.02;

Iter = 0;

% ADMM

while Diff > cost_threshold || Iter < max_Iter

   grad_x_tmp = grad_x + aux_grad_x/alpha;

   grad_y_tmp = grad_y + aux_grad_y/alpha;

   

   numer_alpha = fft2(Diff_R_I+ aux_Diff_R_I/beta) + fft2(Img_ori);

   numer_beta = [grad_x_tmp(:,end,:) - grad_x_tmp(:, 1,:), -diff(grad_x_tmp,1,2)];

   numer_beta = numer_beta + [grad_y_tmp(end,:,:) - grad_y_tmp(1, :,:); -diff(grad_y_tmp,1,1)];

   

   denomin = 1 + alpha/beta*denom_tmp;

   numer = numer_alpha+alpha/beta*fft2(numer_beta);

   

   Result = real(ifft2(numer./denomin));    

   Result_x = [diff(Result,1,2), Result(:,1,:) - Result(:,end,:)];

   Result_y = [diff(Result,1,1); Result(1,:,:) - Result(end,:,:)];

   

   grad_x = Result_x - aux_grad_x/alpha;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献

相关文章
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
110 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
143 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
136 8
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
204 0
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
106 0
|
2月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
154 8
|
2月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
152 12
|
2月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
104 9

热门文章

最新文章