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


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

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

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

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

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现


    💥1 概述

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

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

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

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

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

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

    📚2 运行结果

    主函数代码:

    1. clear all;
    2. close all;
    3. clc;
    4. help imtgvsmooth
    5. % ADMM parameters
    6. nite = 20; % number of iterations
    7. % balancing weights for Total Variation
    8. alpha = 0.06; % 1st order
    9. beta = 0.05; % 2nd order
    10. %
    11. % load an image
    12. %
    13. fname = 'sanada.jpg';
    14. I = im2double( imread( fname ) );
    15. I0 = I; % original as the reference
    16. % Additional noise
    17. I = imnoise( I, 'gaussian', 0, 0.1^2 );
    18. %
    19. % TGV with R,G,B independent processing
    20. %
    21. J = zeros( size(I) );
    22. if ( size(I,3)==3 )
    23. I_ycc = rgb2ycocg( I );
    24. end
    25. for c = 1:size(I,3)
    26. J(:,:,c) = imtgvsmooth( I_ycc(:,:,c), alpha, beta, nite );
    27. end
    28. if ( size(I,3)==3 )
    29. J = ycocg2rgb( J );
    30. end
    31. %
    32. % PSNR
    33. %
    34. psnr_noisy = 10*log10( 1/mean( ( I0(:) - I(:) ).^2 ) );
    35. psnr_tgv = 10*log10( 1/mean( ( I0(:) - J(:) ).^2 ) );
    36. %
    37. % Dsiplaying results
    38. %
    39. figure(1), imshow( [I0, I, J] );
    40. 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代码实现

  • 相关阅读:
    cmake详细教程(二)
    Vue3学习(十八) - TreeSelect 树选择
    GDevelop开源游戏引擎教程——(一)简介和安装
    【实战-05】 flinksql look up join
    Wi-Fi直连分享:Android设备间的高速连接
    React基础知识点
    求解代码题!这个怎么做啊
    Shiro入门基础知识&&案例实现&&与Web的集成
    【JavaWeb】Servlet系列 --- 关于一个web站点的欢迎页面
    Docker 镜像安全
  • 原文地址:https://blog.csdn.net/Ke_Yan_She/article/details/132956910