c中的15x15高斯掩模

时间:2017-06-20 13:59:26

标签: c image-processing mask gaussian

当我用谷歌搜索时,我在c中遇到了一个5x5高斯掩码。 但我需要15x15高斯蒙版,所以我只是修改了这样。

void createFilter(double gKernel[][15])
{
    // set standard deviation to 1.0
    double sigma = 7.0;
    double r, s = 2.0 * sigma * sigma;

    // sum is for normalization
    double sum = 0.0;

    // generate 5x5 kernel
    //for (int x = -2; x <= 2; x++)
    for (int x = -7; x <= 7; x++)
    {
        //for (int y = -2; y <= 2; y++)
        for (int y = -7; y <= 7; y++)
        {
            r = sqrt(x*x + y*y);
            gKernel[x + 7][y + 7] = (exp(-(r*r) / s)) / (M_PI * s);
            sum += gKernel[x + 7][y + 7];
        }
    }

    // normalize the Kernel
    for (int i = 0; i < 15; ++i)
        for (int j = 0; j < 15; ++j)
            gKernel[i][j] /= sum;

}

但是正确数量的15x15高斯掩模之间的输出是不同的。 我应该做些什么来获得正确的15x15掩模系数?

0 个答案:

没有答案