当前位置: 首页 > news >正文

【图像去噪】【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

【图像去噪】【TGV 正则化器的快速计算方法】通过FFT的总(广义)变换进行图像去噪,可提供更自然的恢复图像。为了进一步提升算法的执行效率,我们通过在FFTed(快速傅里叶变换后的)域中求解多变量方程的方式进行优化。

图像去噪是数字图像处理领域中一个重要的任务,通过消除图像中的噪声,可以提高图像的质量和清晰度。TGV(总变差正则化)是一种常用的图像去噪方法,它结合了总变差和梯度正则化,能够有效地去除图像中的噪声,并保持图像细节的准确性。

为了加速TGV正则化器的计算过程,我们利用了FFT(快速傅里叶变换)的性质。FFT是一种高效的算法,可将信号从时域转换到频域,对于处理图像数据非常有效。通过将图像和正则化器在傅里叶域中进行计算,我们可以将复杂的多变量方程转化为一系列更简单的单变量方程,从而大大简化了计算过程。

具体而言,我们首先对输入图像和TGV正则化器进行FFT变换,将它们转换到频域。然后,在频域中,我们将TGV正则化器应用于傅里叶变换后的图像数据,通过解决一系列独立的单变量方程来恢复图像。最后,我们将得到的结果再次通过逆FFT变换转换回时域,得到最终的去噪图像。

这种基于FFT的快速计算方法不仅提高了TGV正则化器的执行速度,还能够更准确地恢复图像的细节和结构。通过在频域中进行运算,我们可以更充分地利用FFT的高效性能,从而在保证图像质量的同时,减少计算时间和资源消耗。

这种快速计算方法在图像去噪领域具有广泛的应用前景,可以在实际的图像处理任务中提供更高效和准确的结果。通过进一步研究和改进,我们可以不断优化这种方法,为图像去噪技术的发展做出更大贡献。

📚2 运行结果

主函数代码:

clear all;
close all;
clc;help imtgvsmooth% ADMM parameters
nite = 20; % number of iterations% balancing weights for Total Variation
alpha = 0.06;  % 1st order
beta = 0.05; % 2nd order%
% load an image
%
fname = 'sanada.jpg';
I = im2double( imread( fname ) );I0 = I; % original as the reference% Additional noise
I = imnoise( I, 'gaussian', 0, 0.1^2 );%
% TGV with R,G,B independent processing
%
J = zeros( size(I) );if ( size(I,3)==3 )I_ycc = rgb2ycocg( I );
endfor c = 1:size(I,3)J(:,:,c) = imtgvsmooth( I_ycc(:,:,c), alpha, beta, nite );
endif ( size(I,3)==3 )J = ycocg2rgb( J );
end%
% PSNR
%
psnr_noisy = 10*log10( 1/mean( ( I0(:) - I(:) ).^2 ) );
psnr_tgv = 10*log10( 1/mean( ( I0(:) - J(:) ).^2 ) );%
% Dsiplaying results
%
figure(1), imshow( [I0, I, J] );
title( sprintf('From the left,  original,  noisy %.2fdB,  TGV %.2fdB', psnr_noisy, psnr_tgv ) );

clear all;
close all;
clc;

help imtgvsmooth

% ADMM parameters
nite = 20; % number of iterations

% balancing weights for Total Variation
alpha = 0.06;  % 1st order
beta = 0.05; % 2nd order


%
% load an image
%
fname = 'sanada.jpg';
I = im2double( imread( fname ) );

I0 = I; % original as the reference

% Additional noise
I = imnoise( I, 'gaussian', 0, 0.1^2 );


%
% TGV with R,G,B independent processing
%
J = zeros( size(I) );

if ( size(I,3)==3 )
    I_ycc = rgb2ycocg( I );
end

for c = 1:size(I,3)
    J(:,:,c) = imtgvsmooth( I_ycc(:,:,c), alpha, beta, nite );
end

if ( size(I,3)==3 )
    J = ycocg2rgb( J );
end

%
% PSNR
%
psnr_noisy = 10*log10( 1/mean( ( I0(:) - I(:) ).^2 ) );
psnr_tgv = 10*log10( 1/mean( ( I0(:) - J(:) ).^2 ) );

%
% Dsiplaying results
%
figure(1), imshow( [I0, I, J] );
title( sprintf('From the left,  original,  noisy %.2fdB,  TGV %.2fdB', psnr_noisy, psnr_tgv ) );

🎉3 参考文献

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

[1]张文娟,王艳红,ZHANGWen-juan,WANGYan-hong.运用TGV正则化分解模型实现天文图像去噪[J].西安工业大学学报, 2012(9).DOI:10.3969/j.issn.1673-9965.2012.09.003.

[2]陈育群,陈颖频,林凡,等.一种快速交叠组合稀疏全变分图像去噪方法[J].闽南师范大学学报:自然科学版, 2019, 32(3):6.DOI:CNKI:SUN:ZSXZ.0.2019-03-008.

[3]张文静.TGV正则化与小波变换结合的图像去噪算法研究[D].武汉理工大学,2014.DOI:10.7666/d.D639381.

🌈4 Matlab代码实现

http://www.lryc.cn/news/170886.html

相关文章:

  • windbg调试句柄问题
  • 9月13-14日上课内容 第三章 ELK日志分析系统及部署实例
  • 服务器端应用的安装
  • 关于硬盘质量大数据分析的思考
  • RK3568核心板分区空间不足,如何修改分区大小?
  • Linux系统怎么修改主机名
  • BroadcastChannel方法跨浏览器窗口通信
  • 山石网科国产化防火墙,打造全方位边界安全解决方案
  • AVL 树
  • ggplot2做图(填坑中)
  • Python日志处理器,同时打印到控制台和保存到文件中,并保证格式一致
  • JavaWeb后端开发登录操作 登录功能 通用模板/SpringBoot整合
  • The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L)
  • C++ PrimerPlus 复习 第七章 函数——C++的编程模块(上)
  • 2.求循环小数
  • zabbix监控告警邮箱提醒,钉钉提醒
  • 典型数据结构-栈/队列/链表、哈希查找、二叉树(BT)、线索二叉树、二叉排序树(BST树)、平衡二叉树(AVL树)、红黑树(RB树)
  • pyarmor 加密许可证的使用
  • 网络路径监控分析
  • vue双向数据绑定是如何实现的?
  • el-date-picker 封装一个简单的日期组件, 主要是禁用日期
  • 保研复习-计算机组成原理
  • linux环境安装redis(亲测完成)
  • 关于命令行交互自动化,及pyinstaller打包wexpect的问题
  • 8.4 【MySQL】文件系统对数据库的影响
  • Python WEB框架FastAPI (二)
  • 基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)
  • 怒刷LeetCode的第3天(Java版)
  • JavaScript数组去重常用方法
  • 蓝牙电话之HFP—电话音频