Switch to side-by-side view

--- a
+++ b/functions/functions_Kovesi/gaussfilt.m
@@ -0,0 +1,47 @@
+% GAUSSFILT -  Small wrapper function for convenient Gaussian filtering
+%
+% Usage:  smim = gaussfilt(im, sigma)
+%
+% Arguments:   im - Image to be smoothed.
+%           sigma - Standard deviation of Gaussian filter.
+%
+% Returns:   smim - Smoothed image.
+%
+% If called with sigma = 0 the function immediately returns with im assigned
+% to smim
+%
+% See also:  INTEGGAUSSFILT
+
+% Peter Kovesi
+% Centre for Explortion Targeting
+% The University of Western Australia
+% http://www.csse.uwa.edu.au/~pk/research/matlabfns/
+
+% March 2010
+% June  2013  - Provision for multi-channel images
+
+function smim = gaussfilt(im, sigma)
+ 
+    if sigma < eps
+        smim = im;
+        return;
+    end
+    
+    % If needed convert im to double
+    if ~strcmp(class(im),'double')
+        im = double(im);  
+    end
+    
+    sze = max(ceil(6*sigma), 1);
+    if ~mod(sze,2)    % Ensure filter size is odd
+        sze = sze+1;
+    end
+    
+    h = fspecial('gaussian', [sze sze], sigma);
+
+    % Apply filter to all image channels
+    smim = zeros(size(im));
+    for n = 1:size(im,3)
+        smim(:,:,n) = filter2(h, im(:,:,n));
+    end
+    
\ No newline at end of file