0

我有一个数组,我正在尝试使用内核进行模糊处理,但由于某种原因循环没有完成,代码如下:

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

控制台中没有错误,并且在这个小循环后显示另一个打印屏幕。

4

1 回答 1

5

这条线可能是问题所在。-

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

您分别递增xand y,而不是kxand ky

我猜你是真的意思-

for (int kx = -2; kx <= 6; kx ++) {
    for (int ky = -2; ky <= 6; ky ++) {
于 2013-10-05T15:58:30.147 回答