• 大小: 239KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: Matlab
  • 标签: NLM  Matlab  

资源简介

下载直接可用的非局部均值去噪MATLAB源代码 ,非局部均值是利用空间域相似块进行去噪的一种经典算法

资源截图

代码片段和文件信息

function im_ext = bound_extension(imByBxtype)

% im_ext = bound_extension(imBtype);
%
% Extend an image for avoiding boundary artifacts
%
%   By Bx:    widths of the added stripes.
%   type:   ‘mirror‘        Mirror extension
%           ‘mirror_nr‘:    Mirror without repeating the last pixel
%           ‘circular‘:     fft2-like
%           ‘zeros‘

% Javier Portilla Universidad de Granada Jan 2004

[NyNxNc] = size(im);

im_ext = zeros(Ny+2*ByNx+2*BxNc);
im_ext(By+1:Ny+ByBx+1:Nx+Bx:) = im;

if strcmp(type‘mirror‘)

    im_ext(1:By::) = im_ext(2*By:-1:By+1::);
    im_ext(:1:Bx:) = im_ext(:2*Bx:-1:Bx+1:);
    im_ext(Ny+1+By:Ny+2*By::) = im_ext(Ny+By:-1:Ny+1::);
    im_ext(:Nx+1+Bx:Nx+2*Bx:) = im_ext(:Nx+Bx:-1:Nx+1:);
    im_ext(1:By1:Bx:) = im_ext(2*By:-1:By+12*Bx:-1:Bx+1:);
    im_ext(Ny+1+By:Ny+2*ByNx+1+Bx:Nx+2*Bx:) = im_ext(Ny+By:-1:Ny+1Nx+Bx:-1:Nx+1:);
    im_ext(1:ByNx+1+Bx:Nx+2*Bx:) = im_ext(2*By:-1:By+1Nx+Bx:-1:Nx+1:);
    im_ext(Ny+1+By:Ny+2*By1:Bx:) = im_ext(Ny+By:-1:Ny+12*Bx:-1:Bx+1:);

elseif strcmp(type‘mirror_nr‘)    
        
    im_ext(1:By::) = im_ext(2*By+1:-1:By+2::);
    im_ext(:1:Bx:) = im_ext(:2*Bx+1:-1:Bx+2:);
    im_ext(Ny+1+By:Ny+2*By::) = im_ext(Ny+By-1:-1:Ny::);
    im_ext(:Nx+1+Bx:Nx+2*Bx:) = im_ext(:Nx+Bx-1:-1:Nx:);
    im_ext(1:By1:Bx:) = im_ext(2*By+1:-1:By+22*Bx+1:-1:Bx+2:);
    im_ext(Ny+1+By:Ny+2*ByNx+1+Bx:Nx+2*Bx:) = im_ext(Ny+By-1:-1:NyNx+Bx-1:-1:Nx:);
    im_ext(1:ByNx+1+Bx:Nx+2*Bx:) = im_ext(2*By+1:-1:By+2Nx+Bx-1:-1:Nx:);
    im_ext(Ny+1+By:Ny+2*By1:Bx:) = im_ext(Ny+By-1:-1:Ny2*Bx+1:-1:Bx+2:);
        
elseif strcmp(type‘circular‘)        
        
    im_ext(1:By::) =  im_ext(Ny+1:Ny+By::);
    im_ext(:1:Bx:) = im_ext(:Nx+1:Nx+Bx:);
    im_ext(Ny+1+By:Ny+2*By::) = im_ext(By+1:2*By::);
    im_ext(:Nx+1+Bx:Nx+2*Bx:) = im_ext(:Bx+1:2*Bx:);
    im_ext(1:By1:Bx:) = im_ext(Ny+1:Ny+ByNx+1:Nx+Bx:);
    im_ext(Ny+1+By:Ny+2*ByNx+1+Bx:Nx+2*Bx:) = im_ext(By+1:2*ByBx+1:2*Bx:);
    im_ext(1:ByNx+1+Bx:Nx+2*Bx:) = im_ext(Ny+1:Ny+ByBx+1:2*Bx:);
    im_ext(Ny+1+By:Ny+2*By1:Bx:) = im_ext(By+1:2*ByNx+1:Nx+Bx:);
   
end    
        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2254  2008-11-18 14:31  bound_extension.m
     文件       16812  2010-06-14 14:53  nlmeans_lnla2008_goossens.m
     文件        3364  2010-06-14 13:53  psdnoise.m
     文件      269256  2005-07-23 12:18  barbara_big.tif
     文件         335  2006-04-07 20:43  GetPSNR.m

评论

共有 条评论