相关疑难解决方法(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万
查看次数

我应该通过哪些措施在MATLAB中设置高斯滤波器的大小?

我正在尝试使用MATLAB学习图像处理,我已阅读有关图像的过滤器.考虑这段代码:

gaussianFilter = fspecial('gaussian', [7, 7], 5)  ,
Run Code Online (Sandbox Code Playgroud)

这构建了一个7行和7列的高斯滤波器矩阵,标准偏差为5.因此,滤波器矩阵的大小为7 x 7.

该矩阵的大小如何在过滤时有效?(这个矩阵有什么作用?)

我应该通过哪些措施在代码中设置滤镜矩阵的大小?

matlab filtering signal-processing image-processing gaussian

3
推荐指数
1
解决办法
5603
查看次数