BLURMAP_BASE - Base function for BLURMAP.
Contents
Syntax
[Iblur, qmap] = BLURMAP_BASE(I, blur, qstep);
See also
Ressembles: BLURMAP. Requires: FSPECIAL, IMFILTER.
Function implementation
function [Iblur,varargout] = blurmap_base(I, blur, qstep)
[X,Y,C] = size(I);
dealing with multispectral images
if C>1 Iblur = zeros(X, Y, C); if nargout==2, varargout{1} = zeros(X, Y, C); end for c=1:C [Iblur(:,:,c) tmp] = blurmap_base(I(:,:,c), blur, qstep); end if nargout==2, varargout{1}(:,:,c) = tmp; end return; end
quantize the bluring map by adjusting the range of blur parameters
blur(blur<qstep) = qstep; quantblur = qstep * round(blur/qstep);
get the list of possible blur parameters
lblur = unique(quantblur(:));
nblur = length(lblur); % no of bluring parameters
this function corrects for boundary conditions by reflecting the image at the boundaries before performing the isotropic gaussian filter. This eliminates the "image darkening" at the edges.
Iblur = zeros(size(I(:,:,1))); for i=1:nblur sigma = lblur(i); G = fspecial('gaussian',fix(6*sigma),sigma); Ifilt = imfilter(I,G,'symmetric','same'); imap = quantblur == sigma; Iblur(imap) = Ifilt(imap); end if nargout==2 varargout{1} = quantblur; end
end % end of blurmap_base