各ピクセルの値を印刷しようとしていますが、p = 300
. の前p = 300
は、すべてのピクセルが印刷されます。
orignal.getHeight() = 344;
とorignal.getWidth() = 300;
。
BufferedImage binarized = new BufferedImage(original.getWidth(), original.getHeight(), original.getType());
int p, q;
System.out.println(original.getHeight() + "," + original.getWidth());
for(p=0;p<original.getHeight();p++)
{
for(q = 0; q < original.getWidth(); q++)
{
//System.out.println("goint to get pixel"+"("+p+","+q+")");
int Pixel = binarized.getRGB(p, q);
}
}
エラーメッセージ:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:318)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:888)
at Binarization.binarize(Binarization.java:137)
at Binarization.main(Binarization.java:20)
これはある種のメモリ割り当ての問題ですか?