Сигма и отклонение значение 0 - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь реализовать Laplacian, это мое ядро:

0  1  0 
1 -4  1
0  1  0

Я показываю только соответствующий код, у меня есть массив 3x3 Pixel, в котором хранятся значения соседних пикселей

Pixel[i][j].val[k] означает RBG значения для k=0,1,2 соответственно.

long double kernel[3][3],mean=0,nTemp=0,c,sum=0,n=0,s=0,d=0;

for ( row = 1; row < rows - 2; row++ )
    {
        for ( col = 1; col < cols - 2; col++ )
        {
            nTemp = 0.0;
            for (i=0 ; i < 3; i++)
            {
                for (j=0 ; j < 3; j++)
                {
                        c = (Pixel[i][j].val[0]+Pixel[i][j].val[1]+Pixel[i][j].val[2])/3;
                        nTemp += (double)c * kernel[i][j];
                }
            }

            sum += nTemp;
            n++;
        }
    }


for ( row = 1; row < rows - 2; row++ )
    {
        for ( col = 1; col < cols - 2; col++ )
        {
            nTemp = 0.0;

            for (i=0 ; i < 3; i++)
            {
                for (j=0 ; j < 3; j++)
                {
                        c = (Pixel[i][j].val[0]+Pixel[i][j].val[1]+Pixel[i][j].val[2])/3;

                        nTemp += (double)c * kernel[i][j];
                }
            }

            s = (mean - nTemp);
            d += (s * s);
        }
    }
// PROBLEM IS HERE SIGMA (s) and Deviation (d) are always 0, 

Я получаю полностью почерневшее изображение, скажите, пожалуйста, где я ошибаюсь?

1 Ответ

1 голос
/ 27 октября 2011

Вы когда-либо использовали Pixel [i] [j] для 0 <= i, j < 3, разве это не должно быть Pixel[row+i][col+j] во внутренних циклах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...