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

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

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

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

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

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码实现](#🌈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 );
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 ) );

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代码实现

相关推荐
白榆maple9 分钟前
(蓝桥杯C/C++)——基础算法(下)
算法
喵~来学编程啦10 分钟前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
JSU_曾是此间年少13 分钟前
数据结构——线性表与链表
数据结构·c++·算法
深圳市青牛科技实业有限公司23 分钟前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
水豚AI课代表44 分钟前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
几两春秋梦_44 分钟前
符号回归概念
人工智能·数据挖掘·回归
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
用户691581141652 小时前
Ascend Extension for PyTorch的源码解析
人工智能
咕咕吖2 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
用户691581141652 小时前
Ascend C的编程模型
人工智能