Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 15x15高斯掩模_C_Image Processing_Mask_Gaussian - Fatal编程技术网

C 15x15高斯掩模

C 15x15高斯掩模,c,image-processing,mask,gaussian,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

当我在谷歌上搜索时,我在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;

}
void createFilter(双gKernel[][15])
{
//将标准偏差设置为1.0
双西格玛=7.0;
双r,s=2.0*sigma*sigma;
//求和用于规范化
双和=0.0;
//生成5x5内核

//对于(int x=-2;x),我们如何知道您认为什么是“正确的”?另一方面,仅计算平方根以使下面一行的结果平方似乎不合理。@hidefromkgb该计算确实可以进行大量优化。从预先计算常数到利用对称性。整个过程是一个常数,可以硬编码。可能sigma太高了,为7.0。您的公式似乎不正确o匹配维基百科上的公式-除数是一个常数√(2π∑²)但您似乎在使用该值的平方(或者没有使用括号中表达式的平方根)。如果您没有显示您的期望值和得到的值,则很难知道其他方法可以帮助您。我们如何知道您认为“正确”的内容?另一方面,仅计算平方根以使下面一行的结果平方似乎不合理。@hidefromkgb该计算确实可以进行大量优化。从预先计算常数到利用对称性。整个过程是一个常数,可以硬编码。可能sigma太高了,为7.0。您的公式似乎不正确o匹配维基百科上的公式-除数是一个常数√(2π∑²)但您似乎在使用该值的平方(或者没有使用括号中表达式的平方根)。如果不显示您的期望值和得到的值,则很难知道还有什么其他方法可以帮助您。