在java中读取灰度图像

在java中读取灰度图像,java,image-processing,Java,Image Processing,当我们读取RGB图像时,执行移位操作以分别获得R、G和B矩阵……是否可以读取灰度图像(JPEG)并直接处理其像素值,然后重写图像 最终,我必须对灰度图像执行DCT操作。下面的代码将灰度图像读取为简单的二维数组: File file = new File("path/to/file"); BufferedImage img = ImageIO.read(file); int width = img.getWidth(); int height = img.getHe

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


最终,我必须对灰度图像执行DCT操作。

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

    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);
        }
    }
File File=新文件(“路径/到/文件”);
BuffereImage img=ImageIO.read(文件);
int width=img.getWidth();
int height=img.getHeight();
int[]imgArr=新int[宽度][高度];
光栅=img.getData();
对于(int i=0;i
注意:
graster.getSample(…)
方法有3个参数:
x
-像素位置的x坐标,
y
-像素位置的y坐标,
b
-要返回的波段。对于灰度图像,我们应该/可能只得到0波段