2013-10-05 44 views
0

我有我想要使用一個內核模糊的數組,但循環出於某種原因沒有完成,下面的代碼:「For循環」未完成出於某種原因

for (int x = 0; x < 128; x++) { 
      for (int y = 0; y < 128; y++) { 
       for (int kx = -2; x <= 6; x++) { 
        for (int ky = -2; y <= 6; y++) { 

         nlm2[x][y] += 100 * (int) ((float) nlm[x][y]*(float)kernel[(kx+3)*(ky+3)-1]); 
         System.out.println(x+" "+y); 

         System.out.println(kx+" NLM: "+(float) nlm[x][y]); 
         System.out.println(ky+" Kernel: "+(float)kernel[(kx+3)*(ky+3)-1]); 

        } 
       } 
      } 
     } 

似乎在 x = 0後停止; y = 6 kx = ky = -2

控制檯中沒有錯誤,並且在這個小循環解除循環之後顯示另一個打印屏幕。

+0

調試是切片面包以來的最好的事情,但只有當你自己做。 –

+1

你最內層的循環遞增並測試'y'值而不是'ky'。 –

回答

5

此行可能是problem.-

for (int kx = -2; x <= 6; x++) { 
    for (int ky = -2; y <= 6; y++) { 

你分別遞增xy,而不是kxky

我猜你真的meant.-

for (int kx = -2; kx <= 6; kx ++) { 
    for (int ky = -2; ky <= 6; ky ++) { 
+0

我感到很蠢,謝謝! –