blurdn.m

来自「matlab的steel金字塔小波分解源代码」· M 代码 · 共 60 行

M
60
字号
% RES = blurDn(IM, LEVELS, FILT)%% Blur and downsample an image.  The blurring is done with filter% kernel specified by FILT (default = 'binom5'), which can be a string% (to be passed to namedFilter), a vector (applied separably as a 1D% convolution kernel in X and Y), or a matrix (applied as a 2D% convolution kernel).  The downsampling is always by 2 in each% direction.%% The procedure is applied recursively LEVELS times (default=1).% Eero Simoncelli, 3/97.function res = blurDn(im, nlevs, filt)%------------------------------------------------------------%% OPTIONAL ARGS:if (exist('nlevs') ~= 1)   nlevs = 1;endif (exist('filt') ~= 1)   filt = 'binom5';end%------------------------------------------------------------if isstr(filt)  filt = namedFilter(filt);end  filt = filt/sum(filt(:));if nlevs > 1  im = blurDn(im,nlevs-1,filt);endif (nlevs >= 1)  if (any(size(im)==1))    if (~any(size(filt)==1))      error('Cant  apply 2D filter to 1D signal');    end    if (size(im,2)==1)      filt = filt(:);    else      filt = filt(:)';    end    res = corrDn(im,filt,'reflect1',(size(im)~=1)+1);  elseif (any(size(filt)==1))    filt = filt(:);    res = corrDn(im,filt,'reflect1',[2 1]);    res = corrDn(res,filt','reflect1',[1 2]);  else    res = corrDn(im,filt,'reflect1',[2 2]);  endelse  res = im;end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?