在java中读取灰度图像

时间:2015-06-20 08:03:35

标签: java image-processing

当我们读取RGB图像时,进行移位操作以分别获得R,G和B矩阵...是否可以读取灰度图像(JPEG)并直接操作其像素值。然后重写图片?

最终我必须在灰度图像上进行DCT操作。

1 个答案:

答案 0 :(得分:2)

下面的代码会将灰度图像读取为简单的二维数组:

    File file = new File("path/to/file");
    BufferedImage img = ImageIO.read(file);
    int width = img.getWidth();
    int height = img.getHeight();
    int[][] imgArr = new int[width][height];
    Raster raster = img.getData();
    for (int i = 0; i < width; i++) {
        for (int j = 0; j < height; j++) {
            imgArr[i][j] = raster.getSample(i, j, 0);
        }
    }

注意:raster.getSample(...)方法有3个参数:x - 像素位置的X坐标y - 像素位置的Y坐标b - 乐队回归。在灰度图像的情况下,我们应该/可能只获得 0 波段。