1.java进行图像处理和c#,c++等都差不多,都是通过获得像素,然后对像素进行操作等一系列图像算法。
1.1如何通过IO流获取图像
BufferedImage img = ImageIO.read(new File(path));
1.2如何访问像素流?
BufferedImage img = ImageIO.read(new File(path));
Raster raster = img.getData();
//像素空间,此时为空,需要通过raster将数据写入到这个空间
int [] pixelSpace = new int[raster.getWidth()*raster.getHeight()*raster.getNumBands()];
//获得的像素信息,我读入的是png图像,所有这个格式是rgba,rgba,rgba...rgba
int [] pixels = raster.getPixels(0,0,raster.getWidth(),raster.getHeight(),pixelSpace);
1.3封装一下,作为一个工作函数
public int[] getPixelArray(String path) throws IOException {
BufferedImage img = ImageIO.read(new File(path));
Raster raster = img.getData();
//像素空间,此时为空,需要通过raster将数据写入到这个空间
int [] pixelSpace = new int[raster.getWidth()*raster.getHeight()*raster.getNumBands()];
//获得的像素信息,我读入的是png图像,所有这个格式是rgba,rgba,rgba...rgba
int [] pixels = raster.getPixels(0,0,raster.getWidth(),raster.getHeight(),pixelSpace);
return pixels;
}