我有以下代碼來讀取java中的黑白圖片。在Java中使用TYPE_USHORT_GRAY讀取黑色/白色圖像
imageg = ImageIO.read(new File(path));
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_USHORT_GRAY);
Graphics g = bufferedImage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
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);
System.out.print(array[j][k]);
}
}
正如你可以看到我已經設置BufferedImage的類型分爲TYPE_USHORT_GRAY,我希望我看到的0到255之間的數字在兩d陣列mattrix。但我會看到'-1'和另一個大整數。任何人都可以突出我的錯誤嗎?
這是由於'getRGB'方法。如果你對二進制(純B/W)圖像感興趣,請看http://stackoverflow.com/questions/5925426/java-how-would-i-load-a-black-and-white-image-into-二進制 – blackSmith 2014-09-29 06:23:20
如果你的目的是讀爲GrayScale,你需要一個轉換公式。 http://stackoverflow.com/questions/687261/converting-rgb-to-grayscale-intensity – blackSmith 2014-09-29 06:29:59