2013-03-15 27 views
0

我正在尝试使用MATLAB脚本,该脚本需要使用图像处理工具箱功能fspecial()高斯滤波器的特殊替代方案

我没有图像处理工具箱,但确实有信号处理工具箱,它包含用于创建过滤器的工具套件。可悲的是,我是在滤镜创建主要是无知和我想看看,如果我能得到一些帮助确定,如果我可以使用在信号处理工具箱中的过滤器创建工具复制下面的代码行:

fspecial('gaussian', [5 1], 0.75) 

回答

1

fspecial()创建一组用户指定的二维滤波函数,并提供一组默认值。

以下函数将产生等效的二维高斯函数。这也是在执行fspecial时,与选项'gaussian'.

运行您可以称为h = gaussian2D([5 1], 0.75);,例如。

%% 2D Gaussian filter 
function h = gaussian2D(siz, std) 

% create the grid of (x,y) values 
siz = (siz-1)./2; 
[x,y] = meshgrid(-siz(2):siz(2),-siz(1):siz(1)); 

% analytic function 
h = exp(-(x.*x + y.*y)/(2*std*std)); 

% truncate very small values to zero 
h(h<eps*max(h(:))) = 0; 

% normalize filter to unit L1 energy 
sumh = sum(h(:)); 
if sumh ~= 0 
    h = h/sumh; 
end