2011-10-27 12 views
0

の値、これは私のカーネルである:シグマと偏差私はラプラシアンを実装しようとしています0

0 1 0 
1 -4 1 
0 1 0 

私は、関連するコードを示しています、私は隣の画素値

を保存する3×3アレイ Pixelを持っています

Pixel[i][j].val[k]は、それぞれk=0,1,2の値がRBGであることを示します。

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

0 <= i, j < 3にはPixel [i] [j]を使用していますが、内部ループにはPixel[row+i][col+j]を含めないでください。

+0

うわー...ただ実現しました...ああ...ほんとうに数分...ありがとう –

+0

うん修正しました...もう一度入力のためにダニエルに感謝します.. –

関連する問題