• 大小: 43KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签: PDE  去噪  图像边缘  

资源简介

本程序实现全变分(Total Variation, TV)的去噪算法,它使用了PDF纠正TV算法中的小问题。该算法可以很好地保留原图边缘信息的同时,去除噪声。

资源截图

代码片段和文件信息

function u = tvdenoise(flambdaNumStepsu)
%TVDENOISE  Total variation image denoising
%   u = TVDENOISE(flambdaNumSteps) denoises the input image f over
%   NumSteps number of iterations.  The larger the parameter lambda the
%   stronger the denoising.  The output u approximately minimizes the
%   Rudin-Osher-Fatemi (ROF) denoising model
%       || f - u ||^2_L^2  +  lambda*TV(u)
%   where TV(u) is the total variation of u.
%
%   TVDENOISE(...u0) specifies the initial image u0.  By default u0 = f.
%
%   Example: Run TVDENOISE without any inputs for a demo
%   >> tvdenoise

% Pascal Getreuer 2007

if nargin < 4
    if nargin == 0
        %%% Demo %%%
        
        % Generate image
        [xy] = meshgrid(linspace(-11250)linspace(-11250));
        [thr] = cart2pol(xy);
        f = (sqrt(2)-r).^2.*(sin(12*r + 4*th) > 0 | r < 0.05)*255;
        f = conv2(fones(5)/25‘same‘);
        f = f(3:5:end3:5:end);
        f = f + randn(size(f))*30;  % Add noise
        
        % Denoise the image with lambda=400 and 25 iterations
        v = tvdenoise(f40025);
        
        % Plots
        subplot(121);
        image(f);
        title(‘Noisy Image‘);
        axis image; axis off; colormap(gray(256));        
        subplot(122);
        image(v);
        title(‘Denoised Image‘);        
        axis image; axis off; colormap(gray(256));
        shg;
                
        return;
    end
    u = f;
elseif any(size(f) ~= size(u))
    error(‘u0 must have the same size as f.‘);
end

EpsSqr = 1e-6;
dt = 0.25;

a = dt*lambda/2;
[N1N2] = size(u);
il = [11:N2-1];
ir = [2:N2N2];
iu = [11:N1-1];
id = [2:N1N1];

for k = 1:NumSteps
    ul = u(:il);
    ur = u(:ir);
    uu = u(iu:);
    ud = u(id:);
    c = a./sqrt(EpsSqr + (ur - u).^2 + (ud - u).^2);
    cl = c(:il);
    cu = c(iu:);
    u = (u + dt*f + c.*(ur + ud) + cl.*ul + cu.*uu) ...
        ./ (1 + dt + 2*c + cl + cu);
end



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        105  2007-12-15 21:45  loadFile.do_files\50th.png

     文件         96  2007-12-15 21:45  loadFile.do_files\90th.png

     文件        646  2007-12-15 21:45  loadFile.do_files\blue_band_536x5.gif

     文件         57  2007-12-15 21:45  loadFile.do_files\bullet.gif

     文件       6880  2007-12-15 21:45  loadFile.do_files\Captcha.htm

     文件      10462  2007-12-15 21:45  loadFile.do_files\cmnty1.css

     文件         70  2007-12-15 21:45  loadFile.do_files\doc.gif

     文件         97  2007-12-15 21:45  loadFile.do_files\dots_rnav.gif

     文件        152  2007-12-15 21:45  loadFile.do_files\dots_rnav_top.gif

     文件         64  2007-12-15 21:45  loadFile.do_files\exclamation.gif

     文件        145  2007-12-15 21:45  loadFile.do_files\fullstar.gif

     文件        117  2007-12-15 21:45  loadFile.do_files\ltblue_top_nav_trans.gif

     文件        155  2007-12-15 21:45  loadFile.do_files\mail_brdr.gif

     文件       2569  2007-12-15 21:45  loadFile.do_files\mlc_logo.gif

     文件      11332  2007-12-15 21:45  loadFile.do_files\preview.jpg

     文件         64  2007-12-15 21:45  loadFile.do_files\question.gif

     文件         43  2007-12-15 21:45  loadFile.do_files\s06759144680489.gif

     文件       3296  2007-12-15 21:45  loadFile.do_files\site3.css

     文件         43  2007-12-15 21:45  loadFile.do_files\spacer.gif

     文件         66  2007-12-15 21:45  loadFile.do_files\submitfile.gif

     文件      38482  2007-12-15 21:45  loadFile.do_files\s_code.txt

     文件        260  2007-12-15 21:45  loadFile.do_files\xmlicon_30x12.gif

     目录          0  2007-12-15 21:45  loadFile.do_files

     文件       2006  2007-12-15 21:39  tvdenoise.m

     文件      40881  2007-12-15 21:45  loadFile.do.htm

----------- ---------  ---------- -----  ----

               118088                    25


评论

共有 条评论