无法到达第 3 和第 4 个内部 for 循环
Can't reach 3th and 4th inner for loops
public static Color[][] blur(int a, Color[][] array){
System.out.println("here");
for(int i=0; i<array.length; i++){
for(int j=0; j<array[0].length; j++){
int rsum = 0;
int gsum =0;
int bsum = 0;
for(int x= i+ 1; x<= i- 1; x++){
for(int y= j+1; y<= j- 1; y++){
if(x >= 0 && x< array.length && y>= 0 && y<array[0].length) {
System.out.println("hola");
int r = array[x][y].getRed();
rsum = rsum + r;
int g = array[x][y].getGreen();
gsum = gsum + g;
int b = array[x][y].getBlue();
bsum = bsum + b;
}
}
}
int ravg = rsum/a;
int gavg = gsum/a;
int bavg = bsum/a;
array[i][j] = new Color(ravg, gavg, bavg);
}
}
return array;
}
我正在尝试创建一个程序,在二维彩色像素数组中,我尝试将二维数组的 3x3 内核移动到更大的二维数组中,并将中心像素值设置为所有像素的平均值RGB 值。我已经调试了几个小时,但这根本不会到达第三个 for 循环。有人可以帮忙吗?
这个循环什么都不做。
for(int x= i+ 1; x<= i- 1; x++){
这是因为 i + 1 <= i - 1 永远不会为真(除非你有溢出)
您最有可能的意思是
for (int x= i - 1; x <= i + 1; x++) {
或
for (int x= i + 1; x >= i - 1; x--) {
public static Color[][] blur(int a, Color[][] array){
System.out.println("here");
for(int i=0; i<array.length; i++){
for(int j=0; j<array[0].length; j++){
int rsum = 0;
int gsum =0;
int bsum = 0;
for(int x= i+ 1; x<= i- 1; x++){
for(int y= j+1; y<= j- 1; y++){
if(x >= 0 && x< array.length && y>= 0 && y<array[0].length) {
System.out.println("hola");
int r = array[x][y].getRed();
rsum = rsum + r;
int g = array[x][y].getGreen();
gsum = gsum + g;
int b = array[x][y].getBlue();
bsum = bsum + b;
}
}
}
int ravg = rsum/a;
int gavg = gsum/a;
int bavg = bsum/a;
array[i][j] = new Color(ravg, gavg, bavg);
}
}
return array;
}
我正在尝试创建一个程序,在二维彩色像素数组中,我尝试将二维数组的 3x3 内核移动到更大的二维数组中,并将中心像素值设置为所有像素的平均值RGB 值。我已经调试了几个小时,但这根本不会到达第三个 for 循环。有人可以帮忙吗?
这个循环什么都不做。
for(int x= i+ 1; x<= i- 1; x++){
这是因为 i + 1 <= i - 1 永远不会为真(除非你有溢出)
您最有可能的意思是
for (int x= i - 1; x <= i + 1; x++) {
或
for (int x= i + 1; x >= i - 1; x--) {