我试图让这段代码运行,但我不断收到错误说:
在main.Main.flipVertically(Main.java:403),这是下面的代码。
img [row] [col] = img [height - row - 1] [col];
我不知道代码或他们所谈论的错误有什么问题。
以下是代码的其余部分:
public static int[][] flipVertically(int[][] img) {
String dir = "image.jpg";
img = Util.readImageToMatrix(dir);
int height = img[0].length;
int width = img.length;
for(int row = 0; row < height/2; row++)
{
for(int col = 0; col < width; col++)
{
int p = img[row][col];
img[row][col] = img[height - row - 1][col];
img[height - row - 1][col] = p;
}
}
return img;
}
答案 0 :(得分:1)
交换高度和宽度
int height = img.length;
int width = img[0].length;
你不能在循环中读取矩阵并使用函数输入中的参数img,或者更好地创建一个新矩阵。
您可以交换整行,如:
public static void flipVertically(int[][] img) {
int height = img.length;
int width = img[0].length;
for(int row = 0; row < height/2; row++)
{
int [] myrow = img[row];
img [row] = img[height - row - 1];
img[height - row - 1] = myrow;
}
}