我想加载一个图像以将其大小调整为 100x100,以将其重塑为 1x100000 并将其保存在 txt 文件中。所以我在bufferedImage中读取它,我将其大小调整为100x100。重塑它并保存它的双重值的后续步骤是我正在寻找的:
File img = new File(train_path + fileNames.get(i) + "/" + imageNames.get(i).get(j));
BufferedImage in = ImageIO.read(img);
BufferedImage newImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = newImage.createGraphics();
g.drawImage(in, 0, 0, null);
g.dispose();
BufferedImage newImg = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_GRAY);
Graphics gr = newImg.createGraphics();
gr.drawImage(newImage, 0, 0, 100, 100, null);
gr.dispose();
System.out.println(newImage.getHeight()+ " "+ newImage.getWidth());
System.out.println(newImg.getHeight()+ " "+ newImg.getWidth());
您可以从初始图像中获取int
数组:
int[] pixels = newImage.getRGB(0, 0, 100, 100, null, 0, 100);
这意味着在新数组中获取从 (0,0) 到 (100,100) 的 RGB 值,从索引 0 开始,偏移每行 100 的索引。
然后对于pixels
中的每个int
,灰度值由下式给出:
int gray = pixels[i] & 0xFF;