相关疑难解决方法(0)

如何在Matlab中制作高斯滤波器

我试图在Matlab中制作高斯滤波器而不使用imfilter()fspecial().我试过这个,但结果不像我和imfilter和fspecial那样.

这是我的代码.

function Gaussian_filtered = Gauss(image_x, sigma)

% for single axis
% http://en.wikipedia.org/wiki/Gaussian_filter
Gaussian_filtered = exp(-image_x^2/(2*sigma^2)) / (sigma*sqrt(2*pi)); 
end
Run Code Online (Sandbox Code Playgroud)

对于2D高斯,

function h =  Gaussian2D(hsize, sigma)

n1 = hsize;
n2 = hsize;

for i = 1 : n2 
        for j = 1 : n1
        % size is 10;
        % -5<center<5 area is covered.
        c = [j-(n1+1)/2 i-(n2+1)/2]';                
        % A product of both axes is 2D Gaussian filtering
        h(i,j) = Gauss(c(1), sigma)*Gauss(c(2), sigma);        
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

最后一个是

function …
Run Code Online (Sandbox Code Playgroud)

matlab image gaussian

5
推荐指数
1
解决办法
5万
查看次数

标签 统计

gaussian ×1

image ×1

matlab ×1