不同于Matlab高斯滤波核的高斯滤波核

不同于Matlab高斯滤波核的高斯滤波核,matlab,filter,computer-vision,gaussian,Matlab,Filter,Computer Vision,Gaussian,我正在Matlab中创建一个高斯滤波器。我已经为创建内核创建了以下代码 function kernel = gaussian_filter(sigma) kernel_width = 3 * sigma - 1; [x, y] = meshgrid(-kernel_width/2:kernel_width/2, -kernel_width/2:kernel_width/2); normalized_constant = 1/(2 * pi * sigma * sigma)

我正在Matlab中创建一个高斯滤波器。我已经为创建内核创建了以下代码

function kernel = gaussian_filter(sigma)
    kernel_width = 3 * sigma - 1;
    [x, y] = meshgrid(-kernel_width/2:kernel_width/2, -kernel_width/2:kernel_width/2);
    normalized_constant = 1/(2 * pi * sigma * sigma);
    kernel = normalized_constant * exp(-(x.^2 + y.^2)/ (2 * sigma * sigma));
    K = mat2gray(kernel);
    imshow(K);
    title('Gaussian Kernel');
 end
我的输出是:

gaussian_filter(3)

ans =

  Columns 1 through 7

    0.0030    0.0044    0.0058    0.0069    0.0073    0.0069    0.0058
    0.0044    0.0065    0.0086    0.0101    0.0107    0.0101    0.0086
    0.0058    0.0086    0.0113    0.0134    0.0142    0.0134    0.0113
    0.0069    0.0101    0.0134    0.0158    0.0167    0.0158    0.0134
    0.0073    0.0107    0.0142    0.0167    0.0177    0.0167    0.0142
    0.0069    0.0101    0.0134    0.0158    0.0167    0.0158    0.0134
    0.0058    0.0086    0.0113    0.0134    0.0142    0.0134    0.0113
    0.0044    0.0065    0.0086    0.0101    0.0107    0.0101    0.0086
    0.0030    0.0044    0.0058    0.0069    0.0073    0.0069    0.0058

  Columns 8 through 9

    0.0044    0.0030
    0.0065    0.0044
    0.0086    0.0058
    0.0101    0.0069
    0.0107    0.0073
    0.0101    0.0069
    0.0086    0.0058
    0.0065    0.0044
    0.0044    0.0030
但当我运行Matlab高斯滤波器时,结果与我的输出略有出入

h = fspecial('gaussian', 9, 3)

h =

  Columns 1 through 7

    0.0040    0.0059    0.0077    0.0091    0.0096    0.0091    0.0077
    0.0059    0.0086    0.0114    0.0135    0.0142    0.0135    0.0114
    0.0077    0.0114    0.0150    0.0178    0.0188    0.0178    0.0150
    0.0091    0.0135    0.0178    0.0210    0.0222    0.0210    0.0178
    0.0096    0.0142    0.0188    0.0222    0.0235    0.0222    0.0188
    0.0091    0.0135    0.0178    0.0210    0.0222    0.0210    0.0178
    0.0077    0.0114    0.0150    0.0178    0.0188    0.0178    0.0150
    0.0059    0.0086    0.0114    0.0135    0.0142    0.0135    0.0114
    0.0040    0.0059    0.0077    0.0091    0.0096    0.0091    0.0077

  Columns 8 through 9

    0.0059    0.0040
    0.0086    0.0059
    0.0114    0.0077
    0.0135    0.0091
    0.0142    0.0096
    0.0135    0.0091
    0.0114    0.0077
    0.0086    0.0059
    0.0059    0.0040

我没有遗漏算法中的任何步骤。我试图找出我们的结果不匹配的原因。

我忘记了规范化内核:

kernel = kernel/(sum(kernel(:)));

内核,而不是内核。。。