当前位置: 代码迷 >> 综合 >> 【图像去噪】基于全变分算法图像去噪matlab代码
  详细解决方案

【图像去噪】基于全变分算法图像去噪matlab代码

热度:10   发布时间:2023-12-03 22:50:32.0

1 简介

全变分算法 将全变分作为衡量图像光滑度的标准,利用噪声图像的全变分大于无噪声图像全变分的特点,将图像去噪转化为求解全变分的极小值。

2 部分代码

function u = SB_ATV(g,mu)

% Split Bregman Anisotropic Total Variation Denoising

%

% April 2012

g = g(:);

n = length(g);

[B Bt BtB] = DiffOper(sqrt(n));

b = zeros(2*n,1);

d = b;

u = g;

err = 1;k = 1;

tol = 1e-3;

lambda = 1;

while err > tol

    fprintf('it. %g ',k);

    up = u;

    [u,~] = cgs(speye(n)+BtB, g-lambda*Bt*(b-d),1e-5,100); 

    Bub = B*u+b;

    d = max(abs(Bub)-mu/lambda,0).*sign(Bub);

    b = Bub-d;

    err = norm(up-u)/norm(u);

    fprintf('err=%g \n',err);

    k = k+1;

end

fprintf('Stopped because norm(up-u)/norm(u) <= tol=%.1e\n',tol);

end

function [B Bt BtB] = DiffOper(N)

D = spdiags([-ones(N,1) ones(N,1)], [0 1], N,N+1);

D(:,1) = [];

D(1,1) = 0;

B = [ kron(speye(N),D) ; kron(D,speye(N)) ];

Bt = B';

BtB = Bt*B;

end

3 仿真结果

4 参考文献

[1]陈棠. (2018). 基于全变分模型的图像去噪方法研究及系统实现. (Doctoral dissertation, 西安理工大学).

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页

  相关解决方案