在java

时间:2017-12-06 15:56:22

标签: java image-processing grayscale

我在java中创建了浮点数的2D数组,表示灰度图像,当每个像素被标准化时 - 它在[0,1]之间。

如何拍摄2D阵列并显示图像(当然是灰度)?

TY!

1 个答案:

答案 0 :(得分:2)

最简单的方法是从中制作BufferedImage。为此,您必须将值转换为颜色:

int toRGB(float value) {
    int part = Math.round(value * 255);
    return part * 0x10101;
}

首先将0-1范围转换为0-255范围,然后产生一种颜色,其中所有三个通道(RGB - 红色,绿色和蓝色)具有相同的值,这使得灰色。

然后,要制作整个图像,请设置所有像素值:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < height; y++)
    for (int x = 0; x < width; x++)
        image.setRGB(x, y, toRGB(theFloats[y][x]));

获得图像后,可以将其保存到文件中:

ImageIO.save(image, 'png', new File('some/path/file.png'));

或者,以某种方式显示它,也许使用Swing ..例如参见this question