嗨,大家好,我有在Java中將GrayScale bmp圖像轉換爲整數二維數組(值爲0-255)的問題。灰度位圖到二維數組
我有可能被看作是一個整數(0-255)2D-陣列的PMB圖像,我想看到2D-陣列中的Java數據結構
我想是這樣的:
Image image = ImageIO.read(new File("my_img.bmp"));
BufferedImage img = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_BYTE_GRAY);
Graphics g = img.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
然後用我的BufferedImage我創建INT [] []是這樣的:
int w = img.getWidth();
int h = img.getHeight();
int[][] array = new int[w][h];
for (int j = 0; j < w; j++) {
for (int k = 0; k < h; k++) {
array[j][k] = img.getRGB(j, k);
}
}
但現在所有的二維數組已滿一些像「-9211021」或類似。
我認爲問題出現在getRGB(j,k)中,但我不知道是否有可能解決它。
編輯:
我知道RGB是不是灰度,所以我如何從一個灰度的BufferedImage獲取單個像素的灰度值?
RGB不是灰度,看看http://docs.oracle.com/javase/6/docs/api/java/awt/image/PixelGrabber.html – arynaq