BufferedImage image = ImageIO.read(new File(img path));
int width = image.getWidth();
int height = image.getHeight();
int[][] result = new int[height][width];
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
result[row][col] = image.getRGB(row, col);
}
}
,這是例外,我得到:異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:座標出界
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:301)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871)
at PlantExtraction.main(PlantExtraction.java:46)
如何刪除這些例外?
在調試器中運行,所以你可以看到哪個索引當拋出異常時超出界限。我的猜測是行和列是相反的 - 行不是「Y」而列是「X」? – Gus 2014-12-03 05:39:07
恕我直言,這個問題是在image.getRGB(行,列)。查看行是否與高度有關,列與寬度有關。確認你可以限制行寬和高度。 – learningloop 2014-12-03 05:59:18