2011-10-27 2 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

넵 ... 고맙습니다. 대니얼을 다시 입력 해 주셔서 감사합니다. –

관련 문제